Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "codex-sdlc",
"version": "0.6.0",
"version": "1.0.0",
"description": "Run evidence-backed software delivery across one or more repositories with Codex.",
"author": {
"name": "vimihi",
Expand Down
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,17 @@

All notable changes to codex-sdlc are documented here.

## 1.0.0 - 2026-09-25

- Add opt-in, assessed Compact runs with a frozen revisioned graph, one canonical BA specification, generated compatibility views, and one independent integrated QC record. Full remains the default; saved model settings and existing runs retain their meaning.
- Bind Compact review to exact facts/specification bytes and require every acceptance criterion's declared evidence, current QC checks, PM-reviewed completion, and final human acceptance. Higher-risk work requires Full.
- Add a matched scripted framework benchmark with identical permission, pagination, and mapping defects; report its limits separately from actual agent speed.
- Add local readiness preflight, generated task assignments and handoffs, recorded activation, ordered command collection, and lifecycle timing.
- Add explicit archived repair cycles for completed implementations and rejected handoffs, downstream gate invalidation, stale-authority rejection, and interruption recovery.
- Fix ownership for configured application roots and unify portable path handling across assignments, command working directories, and permission patterns.
- Allow multiple technical capabilities to reference one business requirement while preserving exact capability/report mapping.
- Keep independent review, QC, human acceptance, existing model presets, and unrepaired legacy runs. Parallel scheduling and evidence caching remain deferred.

## 0.6.0 - 2026-09-24

- Add the `sdlc` entry skill for `/sdlc --save-my-token` and `/sdlc --normal` chat shorthand, with explicit `$sdlc` invocation support.
Expand Down
40 changes: 33 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ Eight Codex skills and a repository-local CLI keep tasks, evidence, blockers, an

## Get started

**New in 1.0.0:** Runtime-assisted delivery reduces manual task bookkeeping, and eligible bounded features can use opt-in Compact mode. See the [release notes](docs/releases/1.0.0.md) for changes and upgrade guidance.

You need **Codex**, **Node.js `>=24.16.0 <25`**, **npm 11**, and an existing application repository. Setup configures your application directories; it does not scaffold application code.

### 1. Install the plugin
Expand Down Expand Up @@ -83,15 +85,15 @@ Start a codex-sdlc feature delivery for: <describe the outcome you want>.

To continue later, ask Codex to resume the existing run. Its manifest records the current tasks, completed work, and remaining decisions.

**Version note:** Project model modes require both the **0.6.0 plugin and runtime**. Per-role routing and AI Product Owner review remain available from 0.5.0. Check your installed plugin version; updating the plugin does not upgrade an existing project's runtime. See the [upgrade guide](docs/getting-started.md#upgrade-an-existing-project).
**Version note:** Compact mode and the new task helpers require both the **1.0.0 plugin and runtime**. Check your installed plugin version; updating the plugin does not upgrade an existing project's runtime. See the [upgrade guide](docs/getting-started.md#upgrade-an-existing-project).

<details>
<summary><strong>Prefer the CLI? Preview a Next.js setup</strong></summary>

Run this against an existing web repository:

```sh
npx --yes codex-sdlc@0.6.0 init \
npx --yes codex-sdlc@1.0.0 init \
--root /absolute/path/to/web --name example-web \
--applications web --web-root . --web-preset nextjs \
--dry-run
Expand All @@ -106,12 +108,36 @@ node .sdlc/runtime.cjs doctor
node .sdlc/runtime.cjs validate-config
```

For a global CLI installation, use `npm install --global codex-sdlc@0.6.0`.
For a global CLI installation, use `npm install --global codex-sdlc@1.0.0`.

</details>

## Your repositories. Your stack.

### Less delivery bookkeeping in 1.0.0

The runtime can now prepare task assignments, record agent activation, collect declared checks, and generate handoff reports from real files and execution evidence. PM still reviews the result, and QC still verifies acceptance independently.

- `preflight` detects local application/root, fixture-file, and command problems before implementation. Live services and populated data remain explicit checks.
- `prepare-task`, `activate-task`, `check-task`, and `handoff-task` replace manual IDs, hashes, inventories, and report metadata for eligible backend/frontend work.
- `repair-task` preserves earlier cycles and invalidates affected verification after a QC defect or rejected implementation review. `recover-repair` handles an interrupted file transaction.
- `timing` reports recorded lifecycle intervals and collector durations, with overlapping work and unknown model time clearly distinguished.
- Configured roots such as `apps/api` and Next.js route groups/dynamic segments work consistently. Several technical capabilities can reference one business requirement.

See [runtime-assisted delivery](skills/sdlc-pm/references/task-operations.md) and [1.0.0 release notes](docs/releases/1.0.0.md). Full remains the default; eligible new runs can now opt into Compact. Parallel scheduling, evidence caching, and model-default changes remain deferred. Automatic handoff verifies the caller-declared task-owned subset of actual uncommitted Git changes; it does not independently infer ownership of omitted files or support deleted product paths.

### Compact delivery for bounded features

```text
$sdlc --compact <describe the feature>
```

Compact uses one specification and one independent QC record, with compatibility views and metadata generated by the runtime. It combines requirements/API review and integrated QC into fewer handoffs, while preserving affected implementation roles, permission boundaries, repair history, and final human acceptance.

Only use it when scope and existing patterns are understood. Migrations, breaking APIs, authorization changes, new sensitive-data exposure, or unresolved risk require Full. The profile is frozen per run; `--save-my-token` and `--normal` continue to configure models separately. See the [Compact guide](skills/sdlc-pm/references/compact-workflow.md).

A [reproducible scripted benchmark](docs/workflow-benchmark.md) compares identical acceptance checks and seeded defects. Its timings measure local framework work, not real agent implementation time or token savings.

Start with a web-only, mobile-only, backend-only, or combined project. Use multi-repository mode when the applications live in separate Git checkouts.

| Layer | Built-in preset |
Expand Down Expand Up @@ -166,7 +192,7 @@ Selections must be available on your Codex host. New runs snapshot the settings;

### Project model modes

Version 0.6.0 adds these chat shortcuts:
These chat shortcuts, introduced in 0.6.0, remain available:

```text
/sdlc --save-my-token
Expand Down Expand Up @@ -200,7 +226,7 @@ codex-sdlc does not operate a hosted service or send repository content to a cod
Preview a project upgrade before applying it:

```sh
npx --yes codex-sdlc@0.6.0 upgrade \
npx --yes codex-sdlc@1.0.0 upgrade \
--root /absolute/path/to/coordinator --dry-run
```

Expand All @@ -214,10 +240,10 @@ Applied upgrades create backups. Rollback checks managed-file integrity before r
| --- | --- |
| [Getting started](docs/getting-started.md) | [CLI setup and lifecycle reference](docs/cli-reference.md) |
| [Multi-repository workspaces](docs/multi-repository.md) | [Role models and dispatch records](docs/agent-models.md) |
| [What's new in 0.6.0](docs/releases/0.6.0.md) | [Release history](https://github.com/prime-vimihi/codex-sdlc/releases) |
| [What's new in 1.0.0](docs/releases/1.0.0.md) | [Release history](https://github.com/prime-vimihi/codex-sdlc/releases) |
| [Support](SUPPORT.md) | [Contributing](CONTRIBUTING.md) |

Current verification includes automated runtime tests, plugin and skill validation, and independent built-CLI checks. Native Linux/Windows qualification and a complete delivery test spanning multiple models remain pending. See the [0.6.0 validation notes](docs/releases/0.6.0.md#validation).
Current verification includes automated runtime tests, plugin and skill validation, and independent built-CLI checks. Native Linux/Windows qualification and a matched real-agent performance benchmark remain pending. See the [1.0.0 validation notes](docs/releases/1.0.0.md#validation).

## Build with us

Expand Down
2 changes: 1 addition & 1 deletion assets/framework.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
schema_version: 1
framework:
name: codex-sdlc
version: 0.6.0
version: 1.0.0
run_schema_version: 1
project_schema_version: 2
installation:
Expand Down
217 changes: 217 additions & 0 deletions assets/schemas/compact-qc.schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,217 @@
{
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"run_id",
"task_id",
"producer",
"revision",
"reviewed_specification",
"results",
"defects",
"recommendation",
"collector_evidence"
],
"properties": {
"schema_version": {
"const": 1
},
"run_id": {
"type": "string",
"pattern": "^[A-Z][A-Z0-9]*-[0-9]+$"
},
"task_id": {
"const": "QC-001"
},
"producer": {
"const": "qc"
},
"revision": {
"type": "integer",
"minimum": 1
},
"reviewed_specification": {
"type": "object",
"additionalProperties": false,
"required": [
"specification_revision",
"specification_sha256",
"facts_sha256",
"semantic_claims_sha256",
"acceptance_criteria_sha256"
],
"properties": {
"specification_revision": {
"type": "integer",
"minimum": 1
},
"specification_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"facts_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"semantic_claims_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"acceptance_criteria_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
}
}
},
"results": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"ac_id",
"status",
"evidence",
"notes"
],
"properties": {
"ac_id": {
"type": "string",
"pattern": "^AC-[0-9]+$"
},
"status": {
"enum": [
"passed",
"failed",
"blocked",
"not_tested"
]
},
"evidence": {
"type": "array",
"minItems": 0,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"reference",
"sha256"
],
"properties": {
"type": {
"enum": [
"command",
"api",
"ui",
"live_database",
"observation"
]
},
"reference": {
"type": "string",
"format": "portable-repository-path"
},
"sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
}
}
}
},
"notes": {
"type": "string",
"pattern": "\\S"
}
}
}
},
"defects": {
"type": "array",
"minItems": 0,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"ac_ids",
"status",
"severity",
"summary"
],
"properties": {
"id": {
"type": "string",
"pattern": "^DEF-[A-Z0-9-]+$"
},
"ac_ids": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"pattern": "^AC-[0-9]+$"
},
"uniqueItems": true
},
"status": {
"enum": [
"open",
"resolved"
]
},
"severity": {
"enum": [
"critical",
"high",
"medium",
"low"
]
},
"summary": {
"type": "string",
"pattern": "\\S"
}
}
}
},
"recommendation": {
"enum": [
"ready",
"changes_requested"
]
},
"collector_evidence": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"reference",
"sha256",
"status"
],
"properties": {
"reference": {
"type": "string",
"pattern": "^evidence/commands/EVD-[0-9a-f]{16}(?:-(?:[2-9]|[1-9][0-9]+))?/evidence\\.json$"
},
"sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"status": {
"enum": [
"passed",
"failed"
]
}
}
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://codex-sdlc.local/schemas/compact-qc.schema.json",
"title": "Compact independent verification"
}
Loading
Loading