|
|
3 giorni fa | |
|---|---|---|
| .abacusai | 3 giorni fa | |
| .devfoundry | 3 giorni fa | |
| docs | 3 giorni fa | |
| specs | 3 giorni fa | |
| AGENTS.md | 3 giorni fa | |
| CLAUDE.md | 3 giorni fa | |
| README.md | 3 giorni fa | |
DevFoundry is a spec-driven development scaffold for projects that mix legacy stacks (Classic ASP, VBScript, VB6, MS Access) with modern ones (C#/.NET, PHP, SQL Server, Postgres, SQLite). No implementation code is written without an approved spec in specs/active/. This document explains what actually happens, step by step, when a spec gets made and carried through to completion.
See CLAUDE.md for the operational directives an agent follows, and AGENTS.md for the full persona routing table.
This repo stays application-code-free. DevFoundry is a process template meant to be adopted by project repos, not a project repo itself. Framework code (a vendored RouteKit app, a .NET solution, etc.), generated controllers/models, and real data files (.accdb, connection strings) belong in the repo that adopts this process — not here. (SPEC-004 vendored a full RouteKit app into this repo root to prove the spec lifecycle worked end-to-end against real code; SPEC-005 reverted it once that was proven, for exactly this reason. The reusable knowledge from that exercise stayed in .devfoundry/references/asp-classic-framework.md.)
[User Request]
|
v
[1. Requirements Analyst] --> Elicits problem statement & acceptance criteria
|
v
[2. Solution Architect] --> Drafts specs/active/SPEC-<id>-<short-name>.md (status: DRAFT)
|
v
[User Approves Spec] --> Status: DRAFT -> APPROVED (frozen)
|
v
[3. Builder] --> Executes the implementation checklist step by step
|
v
[4. QA Verifier] --> Checks every acceptance criterion, no regressions
|
v
[5. Process Improver] --> Retrospective; logs lessons; escalates recurring friction
|
v
[Archive Spec] --> Moves spec to specs/archive/SPEC-<id>-<short-name>.md
Before any technical design starts, the Requirements Analyst persona (.devfoundry/personas/requirements-analyst.md) runs the interview procedure in .devfoundry/skills/spec-interview.md:
This persona never proposes a technical solution — that's the next stage's job. If the request is ambiguous, it asks rather than assumes.
Once requirements are confirmed, the Solution Architect persona (.devfoundry/personas/solution-architect.md) runs .devfoundry/skills/technical-spec.md:
specs/active/SPEC-<id>-<short-name>.md..mdb/.accdb files — copy before altering).DRAFT, and present it to the user.Spec Readiness Checklist before approval:
DRAFT.No schema changes; rollback is git revert.completed: <YYYY-MM-DD HH:MM> timestamp space.The Architect does not begin implementation — that only happens after approval.
The user reviews the DRAFT spec and approves it. Status flips DRAFT -> APPROVED, and the spec is now frozen: its Acceptance Criteria and Technical Design sections don't change without going back through this gate.
If the user cancels a DRAFT spec before approval, set its status to ABANDONED, add a brief cancellation reason in the Business Context or a final note, and move it to specs/archive/SPEC-<id>-<short-name>.md. Do not decrement specs/.spec-counter and do not reuse the ID.
Depending on what's touched, either the Legacy Specialist or Modern Builder persona executes the implementation checklist one unchecked box at a time, in the TDD order the checklist was written in: write the failing test (or manual verification step) for a box, confirm it fails, then implement until it passes.
.asp, .vbs, .bas, .frm, .cls, .mdb, .accdb. Follows .devfoundry/rules/legacy-asp-vb6.md and .devfoundry/rules/database-sql.md: explicit COM object release, parameterized ADO queries, defensive error handling, backups before structural Access changes, and TDD via a test harness where one exists (manual verification steps written first, otherwise)..cs, .php, SQL Server/Postgres/SQLite scripts. Follows .devfoundry/rules/dotnet-csharp.md and .devfoundry/rules/php.md: parameterized queries, TDD (test written and run red before any implementation).Both personas touch only the files listed under the current task. They may check a task box [x] once that task's local verification passes and its completed: <YYYY-MM-DD HH:MM> note is recorded. The overall spec is not complete until the QA Verifier approves every acceptance criterion and regression check.
The QA Verifier persona (.devfoundry/personas/qa-verifier.md) runs .devfoundry/skills/regression-check.md:
A spec is not approved as complete if any acceptance criterion fails.
Once QA passes, the Process Improver persona (.devfoundry/personas/process-improver.md) runs .devfoundry/skills/process-retrospective.md before the spec is archived:
This is what keeps the process itself improving — recurring corrections get folded back into the rules instead of being repeated by hand on every spec.
The completed spec moves from specs/active/SPEC-<id>-<short-name>.md to specs/archive/SPEC-<id>-<short-name>.md. Archived specs are immutable history and are never edited by later retrospectives.
Three standards apply across every stack, defined in .devfoundry/rules/general.md and expanded per stack in the rule files:
See .devfoundry/rules/dotnet-csharp.md, .devfoundry/rules/php.md, and .devfoundry/rules/legacy-asp-vb6.md for how each applies per stack (e.g. ASP.NET Core MVC/Razor Pages, Laravel-style or explicit controllers/models/views in PHP, and concern-separated modules in Classic ASP, which has no built-in MVC framework).
| Path | Contents |
|---|---|
specs/active/ |
Specs currently DRAFT, APPROVED, IN PROGRESS, or REVISED |
specs/archive/ |
Completed or abandoned immutable specs |
specs/templates/ |
spec-template.md, tasks-template.md |
specs/.spec-counter |
Next unused spec ID; incremented by the Solution Architect each time a spec is created — never reused |
docs/process-checks.md |
Repeatable process verification checks for workflow documentation changes |
.devfoundry/personas/ |
The six agent roles in the lifecycle above |
.devfoundry/skills/ |
The step-by-step procedures each persona follows |
.devfoundry/rules/ |
Stack-specific coding standards (legacy, .NET, PHP, database/SQL, general) |
.devfoundry/references/ |
Project-specific facts: environments, data dictionary, SQL dialects |
.devfoundry/improvement-log.md |
Append-only retrospective entries plus a maintained Friction Tally |
| Status | Set by | Meaning / next step |
|---|---|---|
DRAFT |
Solution Architect | Spec is ready for user review, but implementation has not started. |
APPROVED |
User approval, recorded by the agent | Acceptance Criteria and Technical Design are frozen; Builder may start. |
IN PROGRESS |
Builder | First Implementation Plan task has been started or checked off. |
REVISED |
Solution Architect / Builder, after a post-freeze scope change | Frozen sections have an amendment pending user approval. |
COMPLETED |
QA Verifier | All acceptance criteria and regression checks passed; Process Improver runs before archive. |
ABANDONED |
User cancellation, recorded by the agent | Draft work was cancelled before approval; the spec is archived and its ID is never reused. |
A spec can also move APPROVED/IN PROGRESS → REVISED if the user requests a genuine scope change after freeze — see “Amending an APPROVED or IN PROGRESS Spec” in .devfoundry/skills/technical-spec.md. Once the revision is approved, it returns to APPROVED or IN PROGRESS and continues toward COMPLETED.
This repo's own specs/archive/ currently holds DevFoundry's own process-development history (spec IDs documenting how this template itself was hardened) — not any real project's history. When this template is copied to start an actual new project, that history should be cleared out first, so the new project's spec archive starts empty and its IDs start at SPEC-001.
This is a one-time, explicitly-requested action — see .devfoundry/skills/new-project-reset.md for the exact steps (clear specs/archive/ and specs/active/, reset specs/.spec-counter to 1, clear .devfoundry/improvement-log.md's entries, and re-check .devfoundry/references/ for any leftover project-specific facts). It never runs automatically — ask for it by name (“reset this for a new project”) when you're ready to start using the adopted copy for real work. The process itself — .devfoundry/rules/, .devfoundry/personas/, .devfoundry/skills/, specs/templates/ — is what's being adopted, and is left untouched by the reset.
Powered by TurnKey Linux.