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)