# Source Tree Structure - DevForgeAI Framework

**Status**: LOCKED
**Last Updated**: 2026-02-12
**Version**: 3.9 (Added: dead-code-detector, code-smell-catalog, two-stage-filter-patterns paths per STORY-407)

## CRITICAL RULE: Framework Organization

This file defines WHERE framework components belong in the DevForgeAI repository. Projects using DevForgeAI will have their own source-tree.md files created by the spec-driven-architecture skill.

---

## Framework Directory Structure
Do not modify operational files.
Only modify src/, tests/ files.  Unit tests must point to src/ tree and reside within the tests/ folder as denoted in the following directory structure.

```
DevForgeAI2/
├── .github/                     # GitHub-specific configuration (STANDARD LOCATION)
│   └── workflows/               # GitHub Actions workflow files (generated by /setup-github-actions)
│       ├── dev-story.yml        # Headless /dev execution workflow (AC#1)
│       ├── qa-validation.yml    # PR quality gate workflow (AC#2)
│       ├── parallel-stories.yml # Matrix parallel execution workflow (AC#3)
│       └── installer-testing.yml # Installer test workflow
│
├── .claude/                     # Claude Code Terminal configuration (OPERATIONAL - do not modify files)
│   ├── skills/                  # Framework implementation (18 skills)
│   │   ├── spec-driven-ideation/       # Requirements discovery (ADR-038 migration)
│   │   │   ├── SKILL.md                # Main skill with 7-phase orchestration
│   │   │   ├── phases/                 # Phase execution files
│   │   │   │   ├── phase-01-preflight.md
│   │   │   │   ├── phase-02-discovery.md
│   │   │   │   ├── phase-03-elicitation.md
│   │   │   │   ├── phase-04-compliance.md
│   │   │   │   ├── phase-05-artifacts.md
│   │   │   │   ├── phase-06-validation.md
│   │   │   │   └── phase-07-handoff.md
│   │   │   ├── references/             # Deep documentation (loaded on demand)
│   │   │   │   ├── discovery-workflow.md
│   │   │   │   ├── requirements-elicitation-workflow.md
│   │   │   │   ├── artifact-generation.md
│   │   │   │   ├── self-validation-workflow.md
│   │   │   │   ├── completion-handoff.md
│   │   │   │   ├── user-interaction-patterns.md
│   │   │   │   ├── error-handling.md
│   │   │   │   ├── requirements-elicitation-guide.md
│   │   │   │   ├── domain-specific-patterns.md
│   │   │   │   ├── validation-checklists.md
│   │   │   │   └── output-templates.md
│   │   │   ├── assets/
│   │   │   │   └── templates/
│   │   │   │       ├── requirements-template.md
│   │   │   │       ├── requirements-schema.yaml
│   │   │   │       ├── feature-prioritization-matrix.md
│   │   │   │       └── user-persona-template.md
│   │   │   └── scripts/
│   │   │       ├── complexity_scorer.py
│   │   │       └── requirements_validator.py
│   │   ├── brainstorming/                # Business Analyst discovery skill
│   │   │   ├── SKILL.md                  # Main skill (BA discovery phases)
│   │   │   └── assets/
│   │   │       └── templates/
│   │   │           └── brainstorm-template.md
│   │   ├── spec-driven-architecture/
│   │   │   ├── SKILL.md
│   │   │   ├── references/
│   │   │   │   ├── project-context-discovery.md
│   │   │   │   ├── context-file-creation.md
│   │   │   │   ├── adr-creation.md
│   │   │   │   ├── spec-validation.md
│   │   │   │   ├── ambiguity-detection.md
│   │   │   │   └── completion-handoff.md
│   │   │   └── assets/
│   │   │       └── templates/
│   │   │           ├── tech-stack-template.md
│   │   │           ├── source-tree-template.md
│   │   │           ├── dependencies-template.md
│   │   │           ├── coding-standards-template.md
│   │   │           ├── architecture-constraints-template.md
│   │   │           ├── anti-patterns-template.md
│   │   │           └── adr-template.md
│   │   ├── spec-driven-lifecycle/
│   │   │   ├── SKILL.md
│   │   │   ├── references/
│   │   │   │   ├── skill-invocation.md
│   │   │   │   ├── workflow-state-machine.md
│   │   │   │   ├── quality-gates.md
│   │   │   │   └── story-lifecycle-management.md
│   │   │   └── assets/                           # EPIC-048 - Template storage
│   │   │       └── templates/
│   │   │           └── technical-debt-register-template.md  # v2.0 YAML frontmatter template (STORY-285)
│   │   ├── spec-driven-stories/
│   │   │   ├── SKILL.md
│   │   │   ├── references/
│   │   │   │   ├── requirements-analysis.md
│   │   │   │   ├── acceptance-criteria-creation.md
│   │   │   │   ├── technical-specification-creation.md
│   │   │   │   ├── ui-specification-creation.md
│   │   │   │   ├── self-validation.md
│   │   │   │   ├── completion-handoff.md
│   │   │       ├── context-validation.md
│   │   │       └── custody-chain-workflow.md
│   │   │   └── assets/
│   │   │       ├── templates/
│   │   │       │   └── story-template.md
│   │   │       └── contracts/
│   │   │           ├── requirements-analyst-contract.yaml
│   │   │           └── api-designer-contract.yaml
│   │   ├── spec-driven-ui/                   # UI spec & code generation (ADR-043 migration)
│   │   │   ├── SKILL.md                      # 9-phase workflow with EVR anti-skip enforcement
│   │   │   ├── phases/                       # Phase execution files (9 phases)
│   │   │   │   ├── phase-00-initialization.md
│   │   │   │   ├── phase-01-context-validation.md
│   │   │   │   ├── phase-02-story-analysis.md
│   │   │   │   ├── phase-03-interactive-discovery.md
│   │   │   │   ├── phase-04-template-loading.md
│   │   │   │   ├── phase-05-code-generation.md
│   │   │   │   ├── phase-06-documentation.md
│   │   │   │   ├── phase-07-specification-validation.md
│   │   │   │   └── phase-08-feedback-completion.md
│   │   │   ├── references/                   # Deep documentation (19 files, loaded per-phase)
│   │   │   ├── assets/                       # Framework templates (7 files)
│   │   │   └── scripts/                      # Python utilities (2 files)
│   │   ├── spec-driven-dev/
│   │   │   ├── SKILL.md
│   │   │   ├── phases/              # Phase-specific execution guides (10 phases)
│   │   │   │   ├── phase-01-preflight.md
│   │   │   │   ├── phase-02-test-first.md
│   │   │   │   ├── phase-03-implementation.md
│   │   │   │   ├── phase-04-refactoring.md
│   │   │   │   ├── phase-05-integration.md
│   │   │   │   ├── phase-06-deferral.md
│   │   │   │   ├── phase-07-dod-update.md
│   │   │   │   ├── phase-08-git-workflow.md
│   │   │   │   ├── phase-09-feedback.md
│   │   │   │   └── phase-10-result.md
│   │   │   └── references/          # Deep documentation (loaded on demand)
│   │   │       ├── preflight-validation.md
│   │   │       ├── tdd-red-phase.md
│   │   │       ├── tdd-green-phase.md
│   │   │       ├── tdd-refactor-phase.md
│   │   │       ├── integration-testing.md
│   │   │       ├── phase-06-deferral-challenge.md
│   │   │       ├── dod-update-workflow.md
│   │   │       ├── ac-checklist-update-workflow.md
│   │   │       └── git-workflow-conventions.md
│   │   ├── spec-driven-qa/
│   │   │   ├── SKILL.md
│   │   │   ├── references/
│   │   │   │   ├── coverage-analysis-workflow.md
│   │   │   │   ├── code-quality-workflow.md
│   │   │   │   ├── anti-pattern-detection-workflow.md
│   │   │   │   ├── spec-compliance-workflow.md
│   │   │   │   ├── validation-procedures.md
│   │   │   │   ├── report-generation.md
│   │   │   │   └── dod-protocol.md
│   │   │   ├── assets/
│   │   │   │   ├── config/
│   │   │   │   │   ├── coverage-thresholds.md
│   │   │   │   │   ├── quality-metrics.md
│   │   │   │   │   └── security-policies.md
│   │   │   │   └── templates/
│   │   │   │       └── qa-report-template.md
│   │   │   └── scripts/
│   │   │       ├── analyze_complexity.py
│   │   │       ├── detect_duplicates.py
│   │   │       ├── generate_coverage_report.py
│   │   │       ├── generate_test_stubs.py
│   │   │       ├── security_scan.py
│   │   │       └── validate_spec_compliance.py
│   │   ├── devforgeai-release/
│   │   │   ├── SKILL.md
│   │   │   └── references/
│   │   │       ├── deployment-strategies.md
│   │   │       ├── smoke-testing-guide.md
│   │   │       ├── rollback-procedures.md
│   │   │       ├── monitoring-metrics.md
│   │   │       └── release-checklist.md
│   │   ├── devforgeai-documentation/
│   │   │   ├── SKILL.md
│   │   │   ├── references/
│   │   │   │   ├── mode-selection.md
│   │   │   │   ├── greenfield-workflow.md
│   │   │   │   ├── brownfield-workflow.md
│   │   │   │   ├── architecture-documentation.md
│   │   │   │   ├── api-documentation.md
│   │   │   │   ├── user-guides.md
│   │   │   │   └── coverage-validation.md
│   │   │   └── assets/
│   │   │       └── templates/
│   │   │           ├── readme-template.md
│   │   │           ├── api-doc-template.md
│   │   │           ├── developer-guide-template.md
│   │   │           └── architecture-diagram-template.md
│   │   ├── spec-driven-feedback/
│   │   │   ├── SKILL.md
│   │   │   ├── references/
│   │   │   │   ├── session-initialization.md
│   │   │   │   ├── challenge-detection.md
│   │   │   │   ├── insight-extraction.md
│   │   │   │   ├── improvement-recommendation.md
│   │   │   │   └── session-finalization.md
│   │   │   └── assets/
│   │   │       ├── config/
│   │   │       │   └── feedback-config.json
│   │   │       └── templates/
│   │   │           └── session-template.md
│   │   ├── _root-cause-diagnosis.archive/  # ARCHIVED - absorbed into spec-driven-rca (2026-03-18)
│   │   ├── _devforgeai-rca.archive/       # ARCHIVED - absorbed into spec-driven-rca (2026-03-18)
│   │   ├── spec-driven-rca/
│   │   │   ├── SKILL.md
│   │   │   ├── references/
│   │   │   │   ├── file-discovery.md
│   │   │   │   ├── five-whys-analysis.md
│   │   │   │   ├── evidence-collection.md
│   │   │   │   ├── recommendation-generation.md
│   │   │   │   └── rca-document-creation.md
│   │   │   └── assets/
│   │   │       └── templates/
│   │   │           └── rca-template.md
│   │   ├── spec-driven-agents/                    # ADR-044: Migrated from devforgeai-subagent-creation
│   │   │   ├── SKILL.md
│   │   │   ├── phases/
│   │   │   │   ├── phase-01-framework-context.md
│   │   │   │   ├── phase-02-requirements-gathering.md
│   │   │   │   ├── phase-03-specification-assembly.md
│   │   │   │   ├── phase-04-agent-generation.md
│   │   │   │   ├── phase-05-validation.md
│   │   │   │   └── phase-06-result-handoff.md
│   │   │   ├── references/
│   │   │   │   ├── framework-integration-patterns.md
│   │   │   │   ├── validation-checklist.md
│   │   │   │   ├── reference-file-generation-guide.md
│   │   │   │   ├── subagent-creation-workflow.md
│   │   │   │   ├── create-agent-help.md
│   │   │   │   ├── checkpoint-schema.md
│   │   │   │   ├── error-handling.md
│   │   │   │   └── user-interaction-patterns.md
│   │   │   └── assets/
│   │   │       └── templates/
│   │   │           ├── code-reviewer-template.md
│   │   │           ├── test-automator-template.md
│   │   │           ├── documentation-writer-template.md
│   │   │           ├── deployment-coordinator-template.md
│   │   │           ├── requirements-analyst-template.md
│   │   │           ├── skill-template.md
│   │   │           └── command-template-lean-orchestration.md
│   │   ├── devforgeai-mcp-cli-converter/
│   │   │   ├── SKILL.md
│   │   │   └── references/
│   │   │       └── conversion-workflow.md
│   │   ├── claude-code-terminal-expert/ **(ARCHIVED - use spec-driven-cc-guide)**
│   │   ├── spec-driven-cc-guide/
│   │   │   ├── SKILL.md
│   │   │   ├── phases/
│   │   │   ├── references/
│   │   │   └── assets/
│   │   ├── skill-creator/
│   │   │   └── SKILL.md
│   │   ├── _story-remediation.archive/  # ARCHIVED - absorbed into spec-driven-remediation (2026-03-18)
│   │   ├── spec-driven-remediation/     # Audit finding remediation (6-phase, anti-skip enforcement)
│   │   │   ├── SKILL.md
│   │   │   ├── phases/
│   │   │   │   ├── phase-00-context-loading.md
│   │   │   │   ├── phase-01-triage.md
│   │   │   │   ├── phase-02-preview.md
│   │   │   │   ├── phase-03-execution.md
│   │   │   │   ├── phase-04-verification.md
│   │   │   │   └── phase-05-reporting.md
│   │   │   ├── references/
│   │   │   │   ├── fix-actions-catalog.md
│   │   │   │   ├── fix-verification-workflow.md
│   │   │   │   ├── context-validation.md
│   │   │   │   ├── checkpoint-schema.md
│   │   │   │   ├── memory-file-operations.md
│   │   │   │   └── parameter-extraction.md
│   │   │   └── assets/
│   │   │       └── templates/
│   │   │           ├── fix-report-template.md
│   │   │           └── checkpoint-template.yaml
│   │   └── devforgeai-github-actions/
│   │       ├── SKILL.md             # GitHub Actions workflow generation (STORY-097)
│   │       └── references/          # Loaded on demand
│   │           ├── workflow-generation.md
│   │           └── cost-optimization-guide.md
│   │
│   ├── agents/                  # Specialized subagents (31 agents)
│   │   ├── agent-generator.md
│   │   ├── anti-pattern-scanner.md
│   │   ├── anti-pattern-scanner/
│   │   │   └── references/
│   │   │       ├── code-smell-catalog.md
│   │   │       └── two-stage-filter-patterns.md
│   │   ├── api-designer.md
│   │   ├── architect-reviewer.md
│   │   ├── backend-architect.md
│   │   ├── code-analyzer.md
│   │   ├── code-quality-auditor.md
│   │   ├── code-reviewer.md
│   │   ├── dead-code-detector.md
│   │   ├── dead-code-detector/
│   │   │   └── references/
│   │   │       └── entry-point-patterns.md
│   │   ├── context-validator.md
│   │   ├── coverage-analyzer.md
│   │   ├── deferral-validator.md
│   │   ├── deployment-engineer.md
│   │   ├── dev-result-interpreter.md
│   │   ├── documentation-writer.md
│   │   ├── frontend-developer.md
│   │   ├── git-validator.md
│   │   ├── integration-tester.md
│   │   ├── internet-sleuth.md
│   │   ├── pattern-compliance-auditor.md
│   │   ├── qa-result-interpreter.md
│   │   ├── refactoring-specialist.md
│   │   ├── requirements-analyst.md
│   │   ├── security-auditor.md
│   │   ├── sprint-planner.md
│   │   ├── stakeholder-analyst.md
│   │   ├── story-requirements-analyst.md
│   │   ├── tech-stack-detector.md
│   │   ├── technical-debt-analyzer.md
│   │   ├── test-automator.md
│   │   └── ui-spec-formatter.md
│   │
│   ├── commands/                # User-facing workflows (24 commands - do not modify files)
│   │   ├── audit-budget.md
│   │   ├── audit-deferrals.md
│   │   ├── audit-hooks.md
│   │   ├── brainstorm.md            # /brainstorm [topic] | --resume BRAINSTORM-ID
│   │   ├── create-agent.md
│   │   ├── create-context.md
│   │   ├── create-epic.md
│   │   ├── create-sprint.md
│   │   ├── create-story.md
│   │   ├── create-ui.md
│   │   ├── dev.md
│   │   ├── document.md
│   │   ├── export-feedback.md
│   │   ├── feedback-config.md
│   │   ├── feedback-export-data.md
│   │   ├── feedback-reindex.md
│   │   ├── feedback-search.md
│   │   ├── ideate.md
│   │   ├── import-feedback.md
│   │   ├── orchestrate.md
│   │   ├── qa.md
│   │   ├── rca.md
│   │   ├── release.md
│   │   ├── DF/
│   │   └── feedback.md
│   │
│   ├── memory/                  # Progressive disclosure references
│   │   ├── sessions/            # Session-level workflow artifacts (EPIC-052, ADR-014)
│   │   │   └── {SESSION-ID}/    # Per-session observations, decisions, outcomes
│   │   ├── learning/            # Cross-session framework learnings (EPIC-052, ADR-014)
│   │   │   ├── patterns/        # Validated workflow patterns
│   │   │   ├── improvements/    # Pending framework improvements
│   │   │   └── index.md         # Learning catalog for discovery
│   │   ├── skills-reference.md
│   │   ├── subagents-reference.md
│   │   ├── commands-reference.md
│   │   ├── documentation-command-guide.md
│   │   ├── qa-automation.md
│   │   ├── context-files-guide.md
│   │   ├── ui-generator-guide.md
│   │   ├── token-efficiency.md
│   │   ├── epic-creation-guide.md
│   │   ├── token-budget-guidelines.md
│   │   └── skill-execution-troubleshooting.md
│   │
│   ├── scripts/                 # DevForgeAI CLI tools
│   │   ├── devforgeai_cli/
│   │   │   ├── __init__.py
│   │   │   ├── cli.py
│   │   │   ├── validators/
│   │   │   │   ├── dod_validator.py
│   │   │   │   ├── git_validator.py
│   │   │   │   └── context_validator.py
│   │   │   └── README.md
│   │   ├── install_hooks.sh
│   │   └── setup.py
│   │
│   └── hooks/                   # .claude/hooks/ directory for workflow event hooks (EPIC-048)
│       │                        # Naming convention: post-{workflow}-{action}.sh
│       │                        # Examples: post-dev-debt-detection.sh, post-qa-gap-analysis.sh
│       ├── pre-tool-use.sh             # Pre-tool execution hook
│       └── post-qa-debt-detection.sh   # QA gap detection hook
│
├── .treelint/                   # Treelint AST-aware code search working directory (ADR-013)
│   ├── index.db                 # SQLite AST index (gitignored, regenerable on demand)
│   ├── config.toml              # Project configuration (optional commit, TOML format)
│   └── daemon.sock              # IPC Unix socket (gitignored, ephemeral, auto-cleaned on shutdown)
│
├── devforgeai/                  # Framework context and project specs (VISIBLE TO GLOB - do not modify files)
│   ├── specs/                   # Project specifications
│   │   ├── STRUCTURED-FORMAT-SPECIFICATION.md  # Story/Epic format schema definition
│   │   ├── Stories/             # User stories (STORY-NNN-title.story.md)
│   │   │   └── archive/         # Released stories (moved here after /release)
│   │   ├── Epics/               # Epic definitions (EPIC-NNN-title.epic.md)
│   │   ├── Sprints/             # Sprint plans (Sprint-N.md)
│   │   ├── brainstorms/         # Brainstorm session outputs (BRAINSTORM-NNN.brainstorm.md)
│   │   ├── context/             # Framework architectural constraints
│   │   │   ├── tech-stack.md    # Framework implementation constraints
│   │   │   ├── source-tree.md   # This file
│   │   │   ├── dependencies.md  # Framework dependencies
│   │   │   ├── coding-standards.md  # Framework coding patterns
│   │   │   ├── architecture-constraints.md  # Framework design rules
│   │   │   └── anti-patterns.md # Framework anti-patterns
│   │   ├── adrs/                # Architecture Decision Records
│   │   ├── research/            # Research documentation
│   │   ├── analysis/            # Analysis documents
│   │   ├── requirements/        # Requirements and analysis deliverables
│   │   │   └── dev-analysis/    # /dev command conformance analysis outputs
│   │   └── implementation-notes/
│   │
│   ├── RCA/                     # Root Cause Analysis documents
│   │   ├── RCA-006-autonomous-deferrals.md
│   │   ├── RCA-007-multi-file-story-creation.md
│   │   └── [additional RCA documents...]
│   │
│   ├── qa/                      # QA validation configuration
│   │   ├── coverage-thresholds.md
│   │   ├── quality-metrics.md
│   │   ├── audit/               # Custody chain audit reports (generated)
│   │   │   └── custody-chain-audit-{scope}.md
│   │   ├── reports/             # Per-story QA reports (generated)
│   │   │   └── {STORY-ID}-gaps.json
│   │   ├── verification/        # AC compliance verification reports (EPIC-046)
│   │   │   └── {STORY-ID}-ac-verification.json
│   │   └── resolved/            # Archived gap files
│   │
│   ├── protocols/               # Framework protocols and patterns
│   │   ├── lean-orchestration-pattern.md
│   │   └── troubleshooting-lean-orchestration-violations.md
│   │
│   ├── config/                  # Framework configuration
│   │   └── hooks.yaml           # Hook system configuration (opt-in/opt-out)
│   ├── feedback/                # Feedback system data
│   ├── deployment/              # Deployment configurations
│   ├── backups/                 # Backup files (gitignored)
│   ├── epic-coverage/           # Epic coverage validation data
│   └── technical-debt-register.md  # Technical debt tracking (auto-updated by /dev and /qa)
│
├── tests/                   # Framework test files
│
├── src/                         # DISTRIBUTION SOURCE (installer deployment)
│   ├── claude/                  # Claude Code configuration (source)
│   │   ├── agents/              # All 30 subagents (source copies)
│   │   ├── commands/            # All 22 commands (source copies)
│   │   ├──────────── DF/		 # 1 Feedback command
│   │   ├── skills/              # All 17 skills (source copies)
│   │   ├── memory/              # Progressive disclosure references
│   │   └── scripts/             # DevForgeAI CLI tools
│   │
│   ├── devforgeai/              # DevForgeAI configuration (source)
│   │   ├── config/              # Configuration templates
│   │   ├── protocols/           # Framework protocols
│   │   ├── specs/               # Specification templates
│   │   ├── templates/           # Document templates
│   │   ├── feedback/            # Feedback system templates
│   │   └── qa/                  # QA configuration (distribution)
│   │       └── resolved/        # Template for resolved gaps archive
│   │
│   ├── bin/                     # Binary distributions (EPIC-055, STORY-352)
│   │   └── treelint/            # Treelint AST-aware code search binaries
│   │       ├── treelint-linux-x86_64      # Linux x86_64 binary
│   │       ├── treelint-linux-aarch64     # Linux ARM64 binary
│   │       ├── treelint-darwin-x86_64     # macOS x86_64 binary
│   │       ├── treelint-darwin-aarch64    # macOS Apple Silicon binary
│   │       ├── treelint-windows-x86_64.exe # Windows x86_64 binary
│   │       └── checksums.txt              # SHA256 checksums for all binaries
│   │
│   ├── scripts/                 # Installer scripts
│   │   ├── install.sh           # Main installer
│   │   ├── update-framework.sh  # Framework updater
│   │   ├── validate-installation.sh
│   │   ├── rollback-*.sh        # Version rollback scripts
│   │   └── audit-*.sh           # Audit scripts
│   │
│   ├── CLAUDE.md                # Template CLAUDE.md (installer merges with user's)
│   ├── README.md                # Distribution README
│   ├── version.json             # Version metadata
│   └── checksums.txt            # File integrity checksums
│
├── installer/                   # PYTHON INSTALLER PACKAGE (EPIC-012, 013, 014, 035-039)
│   ├── __init__.py             # Package initialization
│   ├── __main__.py             # CLI entry point (python -m installer)
│   │
│   ├── install.py              # Core installer orchestrator
│   ├── backup.py               # Backup/restore system
│   ├── rollback.py             # Rollback mechanism
│   ├── merge.py                # CLAUDE.md merge logic
│   ├── version.py              # Version management
│   ├── validate.py             # Installation validation
│   ├── deploy.py               # File deployment
│   ├── claude_parser.py        # CLAUDE.md parsing
│   ├── variables.py            # Variable substitution
│   │
│   ├── network.py              # Network availability detection (STORY-069)
│   ├── checksum.py             # SHA256 integrity verification (STORY-069)
│   ├── binary_deploy.py        # Treelint binary deployment (STORY-352)
│   ├── offline.py              # Offline installation workflow (STORY-069, STORY-250)
│   ├── bundle.py               # Bundle structure validation (STORY-069)
│   │
│   ├── platform_detector.py    # Platform detection module (STORY-235)
│   ├── preflight.py            # Pre-flight validation (STORY-236)
│   ├── exit_codes.py           # Enhanced exit codes (STORY-237)
│   ├── tech_stack_detector.py  # Tech stack detection (STORY-238)
│   ├── build_executor.py       # Build command execution (STORY-239)
│   ├── package_creator.py      # Language-specific packages (STORY-241)
│   ├── installer_generator.py  # OS-specific installers (STORY-242)
│   ├── installer_mode_config.py # Installer mode config (STORY-243)
│   ├── registry_publisher.py   # Registry publishing (STORY-244)
│   ├── registry_config.py      # Registry configuration (STORY-245)
│   ├── credential_masker.py    # Credential masking (STORY-244)
│   ├── wizard.py               # CLI wizard installer (STORY-247)
│   ├── silent.py               # Silent/headless installer (STORY-249)
│   ├── upgrade.py              # Upgrade operations (STORY-251)
│   ├── repair.py               # Repair operations (STORY-251)
│   ├── uninstall.py            # Uninstall operations (STORY-251)
│   ├── status.py               # Status reporting (STORY-251)
│   │
│   ├── gui/                    # GUI installer template (STORY-248, ADR-009)
│   │   ├── package.json        # Electron dependencies
│   │   ├── main.js             # Electron main process
│   │   ├── preload.js          # Context bridge
│   │   ├── renderer/           # Frontend (HTML/CSS/JS)
│   │   │   ├── index.html
│   │   │   ├── styles.css
│   │   │   ├── app.js
│   │   │   └── pages/          # Page templates
│   │   ├── assets/             # Icons, logos
│   │   └── build/              # electron-builder config
│   │
│   ├── config.yaml             # Installer configuration
│   ├── merge-config.yaml       # CLAUDE.md merge configuration
│   │
│   ├── tests/                  # Installer test suite
│   │   ├── test_offline_installer.py  # Offline mode tests (STORY-069)
│   │   └── test_*.py           # Additional test modules
│   │
│   ├── API.md                  # Installer API documentation
│   ├── INSTALL.md              # Installation guide
│   ├── README.md               # Installer README
│   └── TROUBLESHOOTING.md      # Troubleshooting guide
│
│   # PLANNED (Not Yet Implemented):
│   # ├── cli/                  # Node.js CLI wrapper (EPIC-012)
│   # └── migrations/           # Version migration scripts (EPIC-014)
│
├── docs/                        # Framework documentation
│   ├── architecture/            # Architecture documentation
│   │   ├── decisions/           # Architecture Decision Records (ADRs)
│   │   │   ├── ADR-001-markdown-for-documentation.md
│   │   │   ├── ADR-002-skills-over-monolithic-workflows.md
│   │   │   ├── ADR-003-subagents-for-parallelism.md
│   │   │   └── ADR-NNN-[decision-name].md
│   │   ├── diagrams/            # Architecture diagrams (Mermaid)
│   │   └── patterns/            # Design patterns documentation
│   │
│   ├── guides/                  # User guides
│   │   ├── quickstart.md
│   │   ├── skill-development.md
│   │   └── subagent-development.md
│   │
│   └── api/                     # API specifications
│       ├── skill-api.md
│       ├── subagent-api.md
│       └── command-api.md
│
├── CLAUDE.md                    # Claude Code project instructions (main entry point)
├── README.md                    # Framework overview and quick start
├── ROADMAP.md                   # Implementation phases and timelines
├── LICENSE                      # MIT License
└── .gitignore                   # Git ignore rules
```

---

## Directory Purpose and Rules

### Dual-Location Architecture (STORY-048, Updated for devforgeai/ migration)

**DevForgeAI maintains TWO parallel structures:**

1. **OPERATIONAL folders** (`.claude/` and `devforgeai/`) - Used by Claude Code Terminal during development
2. **DISTRIBUTION source** (`src/`) - Clean copies for external deployment via installer

**Why both exist:**
- `src/` is the source of truth for framework development
- Operational folders (`.claude/`, `devforgeai/`) are populated by the installer
- Operational folders may contain runtime artifacts (backups, generated outputs)
- Installer copies from `src/` → target project's `.claude/` and `devforgeai/`

**Note:** `devforgeai/` (without dot prefix) is used instead of `devforgeai/` to ensure
compatibility with Claude Code's Glob tool, which skips dot-prefixed directories.

**Update protocol:**
- Changes made in `src/` (source of truth)
- Installer deploys from `src/` to operational folders
- Operational folders (`.claude/`, `devforgeai/`) are READ-ONLY at runtime

---

### `.claude/` - Claude Code Configuration (OPERATIONAL - LOCKED)

**Purpose**: Claude Code Terminal automatically discovers skills, subagents, and commands from this directory.

**Rules**:
- ✅ ALL skills go in `.claude/skills/[skill-name]/`
- ✅ ALL subagents go in `.claude/agents/[agent-name].md`
- ✅ ALL slash commands go in `.claude/commands/[command-name].md`
- ✅ Contains 18 skills, 31 subagents, 25 commands (as of 2025-12-20)
- ❌ NO executable code in `.claude/` (Markdown documentation only)
- ❌ NO language-specific implementations (framework must be agnostic)

**Rationale**: Claude Code Terminal's discovery mechanism requires this exact structure.

### `.claude/skills/` - Framework Skills (LOCKED)

**Purpose**: Autonomous, model-invoked capabilities for each development phase.

**Rules**:
- ✅ Each skill in its own subdirectory (e.g., `spec-driven-dev/`)
- ✅ Main skill file MUST be named `SKILL.md`
- ✅ SKILL.md MUST have YAML frontmatter with `name:` and `description:`
- ✅ Keep SKILL.md under 1,000 lines (target: 500-800 lines)
- ✅ Deep documentation goes in `references/` subdirectory
- ✅ Templates and assets go in `assets/` subdirectory
- ✅ Phase-specific execution guides go in `phases/` subdirectory (optional)
- ❌ NO skills in root `.claude/` directory
- ❌ NO executable scripts in skill directories (documentation only)

**Naming Convention**: `[gerund-phrase]` per ADR-017 (e.g., `spec-driven-dev`, `discovering-requirements`)

**Example** (simple skill):
```
.claude/skills/spec-driven-architecture/
├── SKILL.md                 # Main skill (500-800 lines)
└── references/              # Loaded on demand
    ├── context-file-creation.md
    └── adr-creation.md
```

**Example** (complex skill with phases):
```
.claude/skills/spec-driven-dev/
├── SKILL.md                 # Main skill (500-800 lines)
├── phases/                  # Phase-specific execution guides
│   ├── phase-01-preflight.md
│   ├── phase-02-test-first.md
│   └── ...                  # (10 phases total)
└── references/              # Deep documentation (loaded on demand)
    ├── tdd-patterns.md
    └── refactoring-patterns.md
```

### `.claude/agents/` - Specialized Subagents (LOCKED)

**Purpose**: Domain-specific AI workers with separate context windows.

**Rules**:
- ✅ Each subagent is a single `.md` file
- ✅ File name becomes subagent name (e.g., `test-automator.md` → `test-automator`)
- ✅ MUST have YAML frontmatter with `name:`, `description:`, `tools:`, `model:`
- ✅ Keep under 500 lines (target: 100-300 lines)
- ✅ Single responsibility per subagent
- ✅ `references/` subdirectory ALLOWED for subagents exceeding 500 lines (progressive disclosure per ADR-012)
- ❌ Subagents ≤500 lines MUST remain single `.md` files (no subdirectory required)
- ❌ NO multi-responsibility subagents

**Progressive Disclosure Pattern (ADR-012):**

When a subagent exceeds 500 lines, extract reference documentation to enable token efficiency:

```
.claude/agents/
├── test-automator.md                    # Core subagent (≤300 lines)
└── test-automator/                      # Reference subdirectory (same name as .md file)
    └── references/
        ├── remediation-mode.md          # QA integration details
        ├── framework-patterns.md        # Language-specific patterns
        └── common-patterns.md           # Mocking, async, exceptions
```

**Pattern Requirements:**
- Core `.md` file MUST remain ≤300 lines after extraction
- Subdirectory name MUST match the `.md` filename (without extension)
- Only `references/` subdirectory allowed (no custom names)
- Reference files loaded on-demand via `Read()` instructions in core file

**Shared Cross-Agent References (ADR-012 Extension):**

For reference documentation shared across multiple subagents (e.g., tool integration patterns), use a shared `references/` directory:

```
.claude/agents/
├── references/                          # Shared cross-agent references
│   └── treelint-search-patterns.md     # Used by 7+ subagents
├── test-automator.md
├── backend-architect.md
└── ...
```

**Shared References Requirements:**
- Use ONLY for documentation consumed by 3+ subagents
- MUST have YAML frontmatter with `name:`, `description:`, `version:`
- Keep under 400 lines per file (token budget)
- Subagents load via `Read(file_path=".claude/agents/references/{file}.md")`

**Naming Convention**: `[domain]-[role]` (e.g., `test-automator`, `backend-architect`)

**Current components (33 total):**
```
.claude/agents/
├── ac-compliance-verifier.md
├── agent-generator.md
├── anti-pattern-scanner.md
├── api-designer.md
├── architect-reviewer.md
├── backend-architect.md
├── code-analyzer.md
├── code-quality-auditor.md
├── code-reviewer.md
├── context-validator.md
├── coverage-analyzer.md
├── dead-code-detector.md
├── deferral-validator.md
├── deployment-engineer.md
├── dev-result-interpreter.md
├── documentation-writer.md
├── frontend-developer.md
├── git-validator.md
├── integration-tester.md
├── internet-sleuth.md
├── pattern-compliance-auditor.md
├── qa-result-interpreter.md
├── refactoring-specialist.md
├── requirements-analyst.md
├── security-auditor.md
├── sprint-planner.md
├── stakeholder-analyst.md
├── story-requirements-analyst.md
├── tech-stack-detector.md
├── technical-debt-analyzer.md
├── test-automator.md
└── ui-spec-formatter.md
```

### `.claude/commands/` - Slash Commands (LOCKED)

**Purpose**: User-invoked, parameterized workflows.

**Rules**:
- ✅ Each command is a single `.md` file
- ✅ File name becomes command name (e.g., `dev.md` → `/dev`)
- ✅ MUST have YAML frontmatter with `description:` and `argument-hint:`
- ✅ Keep under 500 lines (target: 200-400 lines)
- ✅ Use `$ARGUMENTS` placeholder for parameters
- ✅ Can invoke skills and subagents
- ❌ NO subdirectories in `.claude/commands/` (flat structure)
- ❌ NO commands exceeding 500 lines (extract to skills)

**Naming Convention**: `[action]` or `[action]-[object]` (e.g., `dev`, `create-context`)

**Current commands (24 total):**
```
.claude/commands/
├── audit-budget.md          # /audit-budget
├── audit-deferrals.md       # /audit-deferrals
├── audit-hooks.md           # /audit-hooks [--validate|--performance|--check-circular]
├── brainstorm.md            # /brainstorm [topic] | --resume BRAINSTORM-ID
├── create-agent.md          # /create-agent [name] [options]
├── create-context.md        # /create-context [project-name]
├── create-epic.md           # /create-epic [epic-name]
├── create-sprint.md         # /create-sprint [sprint-name]
├── create-story.md          # /create-story [feature-description | epic-id]
├── create-ui.md             # /create-ui [STORY-ID or component-description]
├── dev.md                   # /dev [STORY-ID]
├── document.md              # /document [STORY-ID | --type=TYPE | --mode=MODE]
├── export-feedback.md       # /export-feedback [--date-range RANGE] [--sanitize true/false]
├── feedback-config.md       # /feedback-config [view|edit|reset] [field] [value]
├── feedback-export-data.md  # /feedback-export-data [--format] [--date-range] [--story-ids]
├── feedback-reindex.md      # /feedback-reindex
├── feedback-search.md       # /feedback-search [query] [--severity] [--status] [--limit]
├── feedback.md              # /feedback [context]
├── ideate.md                # /ideate [business-idea-description]
├── import-feedback.md       # /import-feedback <archive-path>
├── orchestrate.md           # /orchestrate [STORY-ID]
├── qa.md                    # /qa [STORY-ID] [mode]
├── rca.md                   # /rca [issue-description] [severity]
└── release.md               # /release [STORY-ID] [environment]
```

---

### `.treelint/` Gitignore Pattern Guidance

**Purpose**: Defines which `.treelint/` artifacts to commit and which to exclude from version control.

| File Pattern | Recommendation | Rationale |
|--------------|----------------|-----------|
| `index.db` | GITIGNORED | SQLite AST index that is fully regenerable by running Treelint commands. It can grow large proportional to codebase size, causing unnecessary merge conflicts and repository bloat. |
| `daemon.sock` | GITIGNORED | Ephemeral Unix IPC socket created at runtime by the Treelint daemon process. It is machine-specific and cannot meaningfully exist in version control. |
| `config.toml` | OPTIONAL COMMIT | Contains project-specific Treelint settings (language filters, ignore patterns, daemon configuration) that benefit from team-wide consistency when shared via version control. Note: the current `.gitignore` blanket-ignores `.treelint/`, so a negation rule (`!.treelint/config.toml`) is needed to allow tracking this file. |

### `devforgeai/` - Framework Context and Project Specs (OPERATIONAL - LOCKED)

**Purpose**: Framework's architectural constraints and project specifications.

**Rules**:
- ✅ Project specs go in `devforgeai/specs/` (Stories, Epics, Sprints, context, adrs)
- ✅ Framework's context files go in `devforgeai/specs/context/`
- ✅ QA configuration goes in `devforgeai/qa/`
- ✅ RCA documents go in `devforgeai/RCA/`
- ✅ Protocols go in `devforgeai/protocols/`
- ✅ Feedback data goes in `devforgeai/feedback/`
- ✅ Epic coverage validation data goes in `devforgeai/epic-coverage/` (EPIC-015)
- ❌ NO executable code in `devforgeai/` (documentation only)

**Why no dot prefix**: Claude Code's Glob tool skips directories starting with `.` (like `devforgeai/`).
Using `devforgeai/` ensures story files can be found by `/qa`, `/dev`, and other commands.

**Rationale**: Projects using DevForgeAI will have their own `devforgeai/specs/context/` files created by spec-driven-architecture skill.

---

### `src/` - Distribution Source (STORY-048 - LOCKED)

**Purpose**: Clean, version-controlled source files for installer deployment to external projects.

**Rules**:
- ✅ Contains ONLY essential framework files (no backups, no generated outputs)
- ✅ `src/claude/` mirrors `.claude/` structure (skills, agents, commands, memory, scripts)
- ✅ `src/devforgeai/` contains distribution templates (config, protocols, specs, templates)
- ✅ `src/scripts/` contains installer and update scripts
- ✅ Version metadata in `version.json` and integrity checks in `checksums.txt`
- ✅ Template `CLAUDE.md` for installer merge with user's existing file
- ❌ NO operational files (backups, test outputs, generated reports)
- ❌ NO .backup files or temporary files
- ❌ NO user-specific configurations

**Update workflow:**
1. Make changes in `src/claude/` or `src/devforgeai/` (source of truth)
2. Run tests against `src/` tree
3. Update `version.json` with new version number
4. Regenerate `checksums.txt` for integrity validation
5. Commit `src/` changes
6. Installer deploys to operational folders (`.claude/`, `devforgeai/`)

**Installer behavior:**
- Reads framework files from `src/claude/` and `src/devforgeai/`
- Deploys to target project's `.claude/` and `devforgeai/`
- Merges template `CLAUDE.md` with user's existing file (preserves user instructions)
- Creates timestamped backups before deployment
- Validates checksums for integrity
- Supports rollback to previous version

**Rationale**: Separates clean distribution source from messy operational workspace, enables versioned external deployment.

### `devforgeai/specs/` - Project Specifications (LOCKED)

**Purpose**: Epics, sprints, stories, context files, ADRs, and research documentation.

**Rules**:
- ✅ Epics go in `devforgeai/specs/Epics/`
- ✅ Sprints go in `devforgeai/specs/Sprints/`
- ✅ Stories go in `devforgeai/specs/Stories/`
- ✅ Context files go in `devforgeai/specs/context/`
- ✅ ADRs go in `devforgeai/specs/adrs/`
- ✅ Research documentation in `devforgeai/specs/research/`
- ✅ Prompt version snapshots go in `devforgeai/specs/prompt-versions/` (ADR-015)
- ✅ Stories MUST have YAML frontmatter with id, title, epic, sprint, status, points, priority
- ❌ NO code in `devforgeai/specs/` (documentation only)

**Story Naming**: `STORY-NNN-[title].story.md` (e.g., `STORY-001-user-authentication.story.md`)
**Epic Naming**: `EPIC-NNN-[title].epic.md` (e.g., `EPIC-001-user-management.epic.md`)
**Sprint Naming**: `Sprint-N.md` (e.g., `Sprint-1.md`)

### `docs/` - Framework Documentation (LOCKED)

**Purpose**: Architecture documentation, ADRs, guides, API specs.

**Rules**:
- ✅ ADRs go in `docs/architecture/decisions/`
- ✅ Diagrams go in `docs/architecture/diagrams/`
- ✅ User guides go in `docs/guides/`
- ✅ API specifications go in `docs/api/`
- ❌ NO generated documentation (commit only source)
- ❌ NO language-specific docs (framework must be agnostic)

**ADR Naming**: `ADR-NNN-[decision-title].md` (e.g., `ADR-001-markdown-for-documentation.md`)

---

## File Naming Conventions

### Skills

**Pattern**: `[gerund-phrase]` (ADR-017)
**Examples**:
- ✅ `spec-driven-dev`
- ✅ `validating-quality`
- ✅ `creating-stories`
- ✅ `designing-architecture`
- ❌ `IdeationSkill` (no CamelCase)
- ❌ `dev-skill` (not gerund form)
- ❌ `implementing-stories` (legacy — renamed to spec-driven-dev per ADR-039)

### Subagents

**Pattern**: `[domain]-[role]`
**Examples**:
- ✅ `test-automator`
- ✅ `backend-architect`
- ✅ `deployment-engineer`
- ❌ `TestAutomator` (no CamelCase)
- ❌ `test_automator` (use hyphens, not underscores)

### Slash Commands

**Pattern**: `[action]` or `[action]-[object]`
**Examples**:
- ✅ `dev`
- ✅ `qa`
- ✅ `create-context`
- ✅ `create-story`
- ❌ `DevCommand` (no CamelCase)
- ❌ `create_context` (use hyphens, not underscores)

### Context Files

**Pattern**: `[purpose].md` (all lowercase, hyphens)
**Required Files**:
- `tech-stack.md`
- `source-tree.md`
- `dependencies.md`
- `coding-standards.md`
- `architecture-constraints.md`
- `anti-patterns.md`

**Examples**:
- ✅ `tech-stack.md`
- ✅ `anti-patterns.md`
- ❌ `TechStack.md` (no CamelCase)
- ❌ `tech_stack.md` (use hyphens, not underscores)

### Documentation Files

**Pattern**: `[topic].md` or `[topic]-[subtopic].md`
**Examples**:
- ✅ `README.md`
- ✅ `ROADMAP.md`
- ✅ `tdd-workflow-guide.md`
- ✅ `complexity-assessment-matrix.md`
- ❌ `readme.md` (use UPPERCASE for root docs)
- ❌ `TDDWorkflowGuide.md` (no CamelCase for reference docs)

---

## Forbidden Patterns

### ❌ FORBIDDEN: Monolithic Skills

**Wrong**:
```
.claude/skills/
└── devforgeai-all-in-one/
    └── SKILL.md    # 5,000 lines doing everything
```

**Correct**:
```
.claude/skills/
├── spec-driven-ideation/
├── spec-driven-architecture/
├── spec-driven-dev/
├── spec-driven-qa/
└── devforgeai-release/
```

**Rationale**: Modularity enables independent updates and token efficiency.

### ❌ FORBIDDEN: Executable Code in Framework

**Wrong**:
```
.claude/skills/spec-driven-dev/
├── SKILL.md
└── scripts/
    └── implement.py    # Python implementation code
```

**Correct**:
```
.claude/skills/spec-driven-dev/
├── SKILL.md
└── references/
    └── tdd-workflow-guide.md    # Documentation only
```

**Rationale**: Framework must be language-agnostic. Skills provide instructions, not code.

### ❌ FORBIDDEN: Flat Command Structure

**Wrong**:
```
.claude/commands/
├── dev-backend.md
├── dev-frontend.md
├── dev-database.md
└── dev-tests.md
```

**Correct**:
```
.claude/commands/
└── dev.md    # Single command that handles all development
```

**Rationale**: Commands should orchestrate subagents for specialization, not duplicate command for each domain.

### ❌ FORBIDDEN: Context Files Outside `devforgeai/specs/context/`

**Wrong**:
```
.claude/
├── tech-stack.md    # ❌ Wrong location
└── skills/
```

**Correct**:
```
devforgeai/specs/context/
├── tech-stack.md    # ✅ Correct location
```

**Rationale**: Consistent location for AI agents to discover constraints.

---

## Progressive Disclosure Pattern

**Principle**: Keep main files concise, deep details in references.

**Example**:
```
.claude/skills/spec-driven-ideation/
├── SKILL.md (365 lines)
│   # Phase 00: Initialization
│   # Phase 01-07: Orchestration loop
│   # For detailed workflow, see phases/phase-*.md
│   # For reference loading, see references/
│
├── phases/
│   ├── phase-01-preflight.md
│   └── ... (7 phase files)
│
└── references/
    ├── requirements-elicitation-guide.md (1,000 lines)
    ├── validation-checklists.md (651 lines)
    ├── domain-specific-patterns.md (1,200 lines)
    └── feasibility-analysis-framework.md (600 lines)
```

**Benefit**: SKILL.md loads immediately (~20K tokens), references load only when needed (saving 60-80% tokens).

---

## Project Context Pattern (For Projects Using DevForgeAI)

When spec-driven-architecture skill creates context for a **project** using DevForgeAI:

```
my-project/
├── devforgeai/
│   └── specs/
│       ├── context/
│       │   ├── tech-stack.md        # Project's tech choices (e.g., C#, React, PostgreSQL)
│       │   ├── source-tree.md       # Project's structure (e.g., Clean Architecture)
│       │   ├── dependencies.md      # Project's packages (e.g., Dapper 2.1.28)
│       │   ├── coding-standards.md  # Project's patterns (e.g., async/await rules)
│       │   ├── architecture-constraints.md  # Project's layer rules
│       │   └── anti-patterns.md     # Project's forbidden patterns
│       ├── Stories/             # Project's user stories
│       ├── Epics/               # Project's epics
│       └── Sprints/             # Project's sprints
```

**Distinction**:
- **DevForgeAI's `devforgeai/specs/context/`**: Framework's own constraints (meta-level)
- **Project's `devforgeai/specs/context/`**: Project-specific constraints (implementation-level)

---

## Enforcement Checklist

Before committing framework changes:
- [ ] Skills are in `.claude/skills/[skill-name]/` with SKILL.md
- [ ] Subagents are in `.claude/agents/[agent-name].md`
- [ ] Commands are in `.claude/commands/[command-name].md`
- [ ] Context files are in `devforgeai/specs/context/`
- [ ] ADRs are in `devforgeai/specs/adrs/`
- [ ] Stories are in `devforgeai/specs/Stories/`
- [ ] NO executable code in `.claude/` or `devforgeai/`
- [ ] ALL components use Markdown format (not JSON/YAML)
- [ ] File naming follows conventions (lowercase, hyphens)
- [ ] Main files under size limits (skills <1000 lines, commands <500 lines)
- [ ] Reference documentation uses progressive disclosure

---

## Class Names Registry

**Purpose:** Track public class names across modules to prevent naming collisions.

**Collision Resolution:** When two modules define the same class name, use fully qualified imports:
```python
# Option 1: Namespace imports
from installer import registry_config
from installer import registry_publisher
config = registry_config.RegistryConfig(...)
pub_config = registry_publisher.RegistryConfig(...)

# Option 2: Aliased imports
from installer.registry_config import RegistryConfig as ConfigSettings
from installer.registry_publisher import RegistryConfig as PublisherConfig
```

### installer/ Module Classes

| Class Name | Module | Story | Description |
|------------|--------|-------|-------------|
| RegistryConfig | registry_config.py | STORY-245 | Container for all registry configurations |
| RegistryConfig | registry_publisher.py | STORY-244 | Configuration for package registry publishing |
| RegistrySettings | registry_config.py | STORY-245 | Per-registry configuration settings |
| CredentialConfig | registry_config.py | STORY-245 | Credential environment variable mapping |
| ConfigValidationResult | registry_config.py | STORY-245 | Validation result container |
| ConfigError | registry_config.py | STORY-245 | Validation error with field/message/line |
| ConfigWarning | registry_config.py | STORY-245 | Validation warning (non-blocking) |
| RegistryResult | registry_publisher.py | STORY-244 | Result of registry publish operation |
| PublishResult | registry_publisher.py | STORY-244 | Result of publish_all operation |
| RegistryPublisher | registry_publisher.py | STORY-244 | Publishes packages to registries |
| InstallerModeConfig | installer_mode_config.py | STORY-243 | Installer mode configuration |
| CredentialMasker | credential_masker.py | STORY-244 | Masks credentials in output |

**Known Collisions:**
- `RegistryConfig`: Exists in both `registry_config.py` (STORY-245) and `registry_publisher.py` (STORY-244)
  - Resolution: Use fully qualified imports when both modules needed

---

## References

- [CLAUDE.md](src/CLAUDE.md) - Project instructions for Claude Code
- [README.md](README.md) - Framework overview
- [tech-stack.md](tech-stack.md) - Technology constraints
- [Claude Code Skills Documentation](https://docs.claude.com/en/docs/claude-code/agent-skills)

---

**REMEMBER**: This source-tree.md defines the **framework's own structure**. Projects using DevForgeAI will have their own source-tree.md files created by the spec-driven-architecture skill based on project architecture patterns.
