arche_audit

Audit Arche DEF CON materials via Gemini: compare raw sources to talk-tier rubrics.

Locates four markdown files (known layout paths + find fallback), sends their full text to a capable Gemini model, and writes arche_audit_result.md.

arche_audit.locate_arche_files(repo_root, arche_root=None)[source]

Locate each required Arche source file, returning basename -> path.

Resolves the set of mandatory Arche files (ARCHIVE_FILES) by trying, in order: an explicit arche_root when given, then each entry of _RELATIVE_SEARCH_DIRS under repo_root, and finally a filesystem find (_find_via_find()) rooted at repo_root and its parent. The first hit for each name wins; names that cannot be found are omitted.

Called by this module’s main CLI entry point (arche_audit.py:401) to discover the files it audits.

Parameters:
  • repo_root (Path) – Repository root to search beneath (and whose parent the find fallback also scans).

  • arche_root (Path | None) – Optional explicit directory checked first for each file.

Returns:

Mapping of each located file’s basename to its resolved absolute path; missing files are absent from the mapping.

Return type:

dict[str, Path]

arche_audit.main()[source]

Run the async audit pipeline and exit with its return code.

Synchronous CLI entry point that runs _async_main() via asyncio.run and converts its integer return value into process exit status.

Interactions: calls asyncio.run(_async_main(sys.argv[1:])) and raises SystemExit with the result. Invoked from the if __name__ == "__main__" guard; no internal callers were found elsewhere in the repo.

Raises:

SystemExit – Always, carrying the exit code returned by _async_main().

Return type:

None