FaceTheory Development Guidelines
This document is contract-only.
Standards
- Keep canonical user and operator documentation under
docs/and sanctioned optional subtrees only. - Ground guidance in current package exports, scripts, tests, and reference stacks.
- Update docs when public runtime behavior changes, especially route contracts, CLI flags, adapter interfaces, cache semantics, or deployment conventions.
- Keep planning, milestone tracking, and internal process notes out of the fixed ingestible surfaces.
Review Checklist
docs/README.mdlinks every fixed required document.- Machine-readable files use the required top-level roots:
contract:,concepts:,patterns:, anddecisions:. docs/core-patterns.mdcontains bothCORRECTandINCORRECTguidance.- Example commands are runnable as written.
- Docs do not depend on non-canonical roots such as
docs/development/**,docs/planning/**,docs/internal/**, ordocs/archive/**.
Documentation Expectations
docs/getting-started.mdexplains setup and first verification with concrete commands.docs/api-reference.mdreflects the current export map and deployment-facing configuration conventions.docs/testing-guide.mdstays aligned with real verification commands and evidence expectations.docs/troubleshooting.mdcaptures recurring failures with a practical fix and a verification step.- Documentation updates ship in the same change set as interface or behavior changes whenever possible.
TheoryCloud shared-subtree rollout prerequisites
- The protected-merge publisher for FaceTheory lives at
.github/workflows/theorycloud-facetheory-subtree-publish.yml. - That workflow path is part of the IAM trust contract. Do not rename or move it without coordinating the matching OIDC trust-policy update first.
- Approved merges are enforced by repository protections on
premainandmain; the workflow intentionally runs on post-mergepush, notpull_request.closed. - Stage mapping is fixed:
premain -> labandmain -> live. - No GitHub repo variables are required for normal publish operation. The workflow binds the stage-scoped publisher roles directly:
premain -> arn:aws:iam::787107040121:role/KnowledgeTheory-TheoryCloud-FaceTheory-lab-Publishermain -> arn:aws:iam::787107040121:role/KnowledgeTheory-TheoryCloud-FaceTheory-live-Publisher
- The workflow uses a literal
AWS_REGION=us-east-1. - The workflow and helper scripts are the source of truth for the FaceTheory shared-subtree path. The generic KnowledgeTheory workflow/template docs are not authoritative here because they still describe the older
<prefix>/docs/publish shape. - FaceTheory syncs only
theorycloud/facetheory/with docs-root-relative content and a subtreesource-manifest.json; it must never uploadtheorycloud/facetheory/docs/.... - External rollout prerequisites live outside this repo: KT #12 stage-scoped OIDC roles, S3 permissions restricted to
theorycloud/facetheory/, and execute-api invoke permissions only forPOST /v1/internal/publish/theorycloud. - Before treating the workflow as ready, confirm the protected branches require review, code-owner review, signed commits, and the expected status checks so direct pushes cannot bypass the approved-merge-only contract.