|
| 1 | +# Feature-Driven-Flow (FDF) |
| 2 | + |
| 3 | +Version: `1.2.0` |
| 4 | + |
| 5 | +Feature-Driven-Flow is a markdown-first delivery framework for non-trivial work. This package targets Codex. It runs a fixed seven-phase workflow, compiles selected policies into an Effective Rule Matrix, and supports reusable effective-instructions artifacts. |
| 6 | + |
| 7 | +## Install |
| 8 | + |
| 9 | +1. Copy `skills/*` into `$CODEX_HOME/skills/`. |
| 10 | +2. Copy `prompts/*.md` into `$CODEX_HOME/prompts/`. |
| 11 | +3. Copy `fdf/` into your target project root as `./fdf/`. |
| 12 | +4. Restart Codex. |
| 13 | + |
| 14 | +Resulting runtime layout in a target project: |
| 15 | + |
| 16 | +```text |
| 17 | +$CODEX_HOME/ |
| 18 | +├── skills/ |
| 19 | +│ └── feature-driven-flow/ |
| 20 | +└── prompts/ |
| 21 | + └── fdf-start.md |
| 22 | +
|
| 23 | +<project-root>/ |
| 24 | +└── fdf/ |
| 25 | + ├── schemas/ |
| 26 | + ├── scripts/ |
| 27 | + └── skills/feature-driven-flow/ |
| 28 | +``` |
| 29 | + |
| 30 | +## Quick Start |
| 31 | + |
| 32 | +Run the conductor prompt: |
| 33 | + |
| 34 | +```text |
| 35 | +/prompts:fdf-start Create a simple console Java app that prints factorial(n). Use JDK 25 and Maven. Read n from argv. |
| 36 | +``` |
| 37 | + |
| 38 | +Optional profile request: |
| 39 | + |
| 40 | +```text |
| 41 | +/prompts:fdf-start Build a small internal CLI tool. Use profile hardened and overlays security-overlay, operations-overlay. |
| 42 | +``` |
| 43 | + |
| 44 | +Optional Effective Rule Matrix reuse: |
| 45 | + |
| 46 | +```text |
| 47 | +/prompts:fdf-start Implement my feature using matrix file .codex/feature-driven-flow/effective-rule-matrix.json |
| 48 | +``` |
| 49 | + |
| 50 | +## Included Assets |
| 51 | + |
| 52 | +- Internal conductor skill implementation: `skills/feature-driven-flow/SKILL.md` |
| 53 | +- Internal specialist skill implementations: `skills/fdf-code-explorer/`, `skills/fdf-implementation-planner/`, `skills/fdf-change-auditor/` |
| 54 | +- Prompt entrypoint: `prompts/fdf-start.md` |
| 55 | +- Utility prompts: `prompts/fdf-*.md` |
| 56 | +- Shared rules, profiles, packs, templates, references: `fdf/skills/feature-driven-flow/` |
| 57 | +- Schemas: `fdf/schemas/*.json` |
| 58 | +- Conversion tool: `fdf/scripts/convert-effective-instructions.ps1` |
| 59 | + |
| 60 | + |
| 61 | +## Source Repository |
| 62 | + |
| 63 | +Development happens in [QuasarByte/feature-driven-flow](https://github.com/QuasarByte/feature-driven-flow). |
| 64 | +This Codex package is the runtime distribution published through [QuasarByte/feature-driven-flow-codex](https://github.com/QuasarByte/feature-driven-flow-codex). |
| 65 | + |
| 66 | +## Maintainer Tooling |
| 67 | + |
| 68 | +If you use the build, deploy, validation, manifest, or conversion scripts from this repository, PowerShell 7 (`pwsh`) must be installed. |
| 69 | +The `.sh` and `.cmd` wrappers still delegate to `pwsh`. |
| 70 | + |
| 71 | +Scripts that require `pwsh`: |
| 72 | + |
| 73 | +1. `tools/build-distribution-codex.ps1` |
| 74 | +2. `tools/deploy-distribution-codex.ps1` |
| 75 | +3. `tools/run-validation-cycle.ps1` |
| 76 | +4. `tools/validate-fdf-assets.ps1` |
| 77 | +5. `tools/generate-fdf-manifest.ps1` |
| 78 | +6. `shared/fdf/scripts/convert-effective-instructions.ps1` |
| 79 | + |
| 80 | +## Workflow Contract |
| 81 | + |
| 82 | +FDF always runs in this order: |
| 83 | + |
| 84 | +`Scope -> Explore -> Clarify -> Architect -> Implement -> Verify -> Summarize` |
| 85 | + |
| 86 | +Core invariants: |
| 87 | + |
| 88 | +1. Do not reorder or skip phases. |
| 89 | +2. Do not leave Clarify with decision-critical ambiguity. |
| 90 | +3. Do not start Implement without explicit user approval. |
| 91 | +4. Do not close before Verify and Summarize. |
| 92 | + |
| 93 | +## Settings |
| 94 | + |
| 95 | +Distribution defaults live at: |
| 96 | + |
| 97 | +`fdf/skills/feature-driven-flow/settings.json` |
| 98 | + |
| 99 | +Repo-local overrides can be added at: |
| 100 | + |
| 101 | +- `.codex/feature-driven-flow/settings.json` |
| 102 | +- `.codex/feature-driven-flow/rules/*.md` |
| 103 | +- `.codex/feature-driven-flow/profiles/*.md` |
| 104 | +- `.codex/feature-driven-flow/packs/*` |
| 105 | + |
| 106 | +Default shared pack directory inside the installed runtime: |
| 107 | + |
| 108 | +`fdf/skills/feature-driven-flow/packs` |
| 109 | + |
| 110 | +## Effective Artifact Commands |
| 111 | + |
| 112 | +Export matrix: |
| 113 | + |
| 114 | +```text |
| 115 | +/prompts:fdf-export-effective-matrix .codex/feature-driven-flow/effective-rule-matrix.json |
| 116 | +``` |
| 117 | + |
| 118 | +Export compiled instructions bundle: |
| 119 | + |
| 120 | +```text |
| 121 | +/prompts:fdf-export-effective-instructions-bundle .codex/feature-driven-flow/effective-instructions-bundle |
| 122 | +``` |
| 123 | + |
| 124 | +Export compiled instructions compact: |
| 125 | + |
| 126 | +```text |
| 127 | +/prompts:fdf-export-effective-instructions-compact .codex/feature-driven-flow/effective-instructions-compact.json |
| 128 | +``` |
| 129 | + |
| 130 | +Convert bundle to compact: |
| 131 | + |
| 132 | +```powershell |
| 133 | +pwsh -NoProfile -File fdf/scripts/convert-effective-instructions.ps1 -Mode directory-to-compact -InputPath .codex/feature-driven-flow/effective-instructions-bundle -OutputPath .codex/feature-driven-flow/effective-instructions-compact.json |
| 134 | +``` |
| 135 | + |
| 136 | +Convert compact to bundle: |
| 137 | + |
| 138 | +```powershell |
| 139 | +pwsh -NoProfile -File fdf/scripts/convert-effective-instructions.ps1 -Mode compact-to-directory -InputPath .codex/feature-driven-flow/effective-instructions-compact.json -OutputPath .codex/feature-driven-flow/effective-instructions-bundle |
| 140 | +``` |
| 141 | + |
| 142 | +## Manifest and Schema Paths |
| 143 | + |
| 144 | +- Combined manifest: `fdf/skills/feature-driven-flow/extensions/manifest.json` |
| 145 | +- Core manifest: `fdf/skills/feature-driven-flow/manifest.json` |
| 146 | +- Pack manifests: `fdf/skills/feature-driven-flow/packs/<pack_id>/manifest.json` |
| 147 | +- Settings schema: `fdf/schemas/fdf-settings.schema.json` |
| 148 | +- Matrix schema: `fdf/schemas/fdf-effective-matrix.schema.json` |
| 149 | +- Effective-instructions schemas: `fdf/schemas/fdf-effective-instructions-*.schema.json` |
| 150 | + |
| 151 | +## Troubleshooting |
| 152 | + |
| 153 | +1. Prompt missing: verify `fdf-start.md` exists in `$CODEX_HOME/prompts/` and restart Codex. |
| 154 | +2. Packs not available: check `packs.enabled` and `fdf/skills/feature-driven-flow/packs/<pack_id>/manifest.json`. |
| 155 | +3. Imported matrix rejected: validate against `fdf/schemas/fdf-effective-matrix.schema.json`. |
| 156 | +4. Effective-instructions import/export rejected: validate against the relevant schema under `fdf/schemas/` and review `effective_instructions.*` settings. |
| 157 | + |
| 158 | +## Deploy Sync |
| 159 | + |
| 160 | +To mirror the built Codex distribution into a local checkout of your release repository: |
| 161 | + |
| 162 | +```powershell |
| 163 | +pwsh -NoProfile -File tools/deploy-distribution-codex.ps1 -TargetRepoPath C:\path\to\feature-driven-flow-codex -Build |
| 164 | +``` |
| 165 | + |
| 166 | +It uses a PowerShell-native mirror sync excluding `.git`, so it copies new files, updates changed files, and deletes files that no longer exist in `distrib/feature-driven-flow-codex`. |
0 commit comments