Skip to content

Repo folder structure

Folder map

Quick-reference table of every directory and its purpose. Public/private boundary is MkDocs + llms-full.txt (not the Git repo). The publish filter only scans docs/; everything else is automatically excluded from the public catalog.

Directory Contents Public? Authors
features/{domain}/ Feature YAML + narrative body, one file per capability ✅ (private fields stripped) SA / Kit
solution-patterns/ Solution Pattern files — customer-facing capability bundles SA / Kit
canon/axioms/ Canon Axiom files — differentiation principles with competitive context SA / Alex
canon/diagrams/valid/ Reference topology examples — SA-reviewed SA
canon/diagrams/invalid/ Counterexamples with annotations ❌ internal SA
requirements/ Requirement files — customer asks, RFP questions, market signals ❌ private PM / Classifier
solution-evidence/ Anonymised customer deployments with measurable outcomes ✅ (if public: true) SA + Marketing
content-library/ Presales baseline docs (T&C, certs, boilerplate) ❌ private Presales / Legal
design-system/ Brand tokens driving all visual output (diagrams, PPT, Word) tokens.yaml only Designer
_templates/ Authoritative schema-based templates for all object types ❌ (reference only) Agents.md + CI
_bmad-output/reachability-reports/ Marginal Reachability Horizon views (private analytics) ❌ private Ray / bmad-feature-reachability-report
_bmad-output/competitive-briefs/ Deal-specific competitive briefs ❌ private Jordan / bmad-competitive-brief
_bmad-output/word/ Word/PPT exports for presales ❌ private Presales workflow
docs/ MkDocs source root — only this tree enters the public build Auto-generated
scripts/ CI and build scripts (publish_filter.py, validate_schema.py, etc.) N/A EFAgenticSpec sessions
domain-taxonomy.yaml Authoritative domain list — drives CI validation and CODEOWNERS ❌ (CI only) Andreas + domain leads

Bold rule: the Git repo is ExpertFlow-internal. All employees have read access to the full repo including private fields. The public boundary is the MkDocs build + llms-full.txt, not the Git history. Never rely on Git access controls to keep private fields private — use the publish filter.


Folder structure (detailed)

features/
  {domain-id}/          # one folder per domain from domain-taxonomy.yaml
    {feature-id}.md     # Feature YAML + narrative body
  _template.md          # workflow template — see _templates/feature.md for schema reference
solution-patterns/
  {pattern-id}.md
  _template.md
canon/
  axioms/
    {axiom-id}.md
    _template.md
  diagrams/
    valid/              # reference topology examples — SA-reviewed, public
    invalid/            # counterexamples with annotations — internal only
requirements/
  {requirement-id}.md
  _template.md
solution-evidence/      # anonymised customer deployments; public if customer_consent: true
  {evidence-id}.md
content-library/        # PRIVATE — never published via MkDocs; committed to internal Git
  baseline/
    legal/
    compliance/
    marketing/
  inclusion-rules.yaml
_bmad-output/           # Internal management outputs — committed to internal Git;
  competitive-briefs/   # never published via MkDocs or llms-full.txt.
  reachability-reports/ # The MkDocs publish_filter only scans docs/, so this is
  word/                 # automatically excluded from the public catalog.
_templates/             # Schema-authoritative templates for all object types
  feature.md            # all Feature fields with required/optional/private annotations
  solution-pattern.md   # all Solution Pattern fields
  canon-axiom.md        # all Canon Axiom fields
  requirement.md        # all Requirement fields
design-system/
  tokens.yaml           # brand tokens — designer-owned
  tokens-derived/       # auto-generated; do not edit manually
  assets/
.github/
  CODEOWNERS
  workflows/
    ci.yml              # DAG validation, acyclicity check, schema lint
docs/                   # MkDocs source (public fields only)
  features/
  solution-patterns/
  canon/
  evidence/
  llms.txt              # static LLM entry-point pointer (curated)
  llms-full.txt         # auto-generated full feature/pattern/axiom index
scripts/
  publish_filter.py     # strips private fields; whitelist approach
  validate_schema.py    # Feature + Pattern frontmatter schema validation
  check_dag.py          # acyclicity + dangling-ref checks on depends_on graph
domain-taxonomy.yaml    # authoritative domain list (mastered here, not in EFAgenticSpec)