@entelligentsia/forgecli 0.20.0 → 0.20.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +51 -0
- package/dist/extensions/forgecli/forge-init/phase4-register.js +19 -0
- package/dist/extensions/forgecli/forge-init/phase4-register.js.map +1 -1
- package/dist/forge-payload/commands/update.md +23 -1
- package/dist/forge-payload/schemas/_defs/phaseSummary.schema.json +18 -0
- package/dist/forge-payload/schemas/bug.schema.json +40 -0
- package/dist/forge-payload/schemas/collation-state.schema.json +16 -0
- package/dist/forge-payload/schemas/config.schema.json +215 -0
- package/dist/forge-payload/schemas/enum-catalog.json +71 -0
- package/dist/forge-payload/schemas/event-sidecar.schema.json +22 -0
- package/dist/forge-payload/schemas/event.schema.json +184 -0
- package/dist/forge-payload/schemas/feature.schema.json +22 -0
- package/dist/forge-payload/schemas/progress-entry.schema.json +16 -0
- package/dist/forge-payload/schemas/project-context.schema.json +167 -0
- package/dist/forge-payload/schemas/project-overlay.schema.json +25 -0
- package/dist/forge-payload/schemas/proposal.schema.json +40 -0
- package/dist/forge-payload/schemas/sprint.schema.json +27 -0
- package/dist/forge-payload/schemas/structure-versions.schema.json +57 -0
- package/dist/forge-payload/schemas/task.schema.json +43 -0
- package/dist/forge-payload/schemas/transitions/bug.json +31 -0
- package/dist/forge-payload/schemas/transitions/sprint.json +46 -0
- package/dist/forge-payload/schemas/transitions/task.json +109 -0
- package/dist/forge-payload/tools/manage-config.cjs +120 -2
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,57 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.20.3] — 2026-05-25
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- **update.md Row 1: config refresh always runs.** Row 1 ("up to date, no
|
|
15
|
+
pending migrations") previously said "exit" — causing the agent to skip
|
|
16
|
+
Step 4 entirely, including the config refresh (forgeRoot, forgeRef,
|
|
17
|
+
backfill). Missing config fields accumulate across version boundaries;
|
|
18
|
+
backfill ensures the config stays structurally complete after every
|
|
19
|
+
`/forge:update` invocation. Row 1 now executes Step 4 config refresh
|
|
20
|
+
before proceeding to Step 5.
|
|
21
|
+
|
|
22
|
+
## [0.20.2] — 2026-05-25
|
|
23
|
+
|
|
24
|
+
### Added
|
|
25
|
+
|
|
26
|
+
- **`manage-config backfill` subcommand** — schema-validated config field backfill.
|
|
27
|
+
Reads `$FORGE_ROOT/schemas/config.schema.json`, compares against current
|
|
28
|
+
`.forge/config.json`, and writes defaults for any missing fields with
|
|
29
|
+
schema-defined defaults. Also stamps the top-level `version` field from
|
|
30
|
+
the bundled plugin version. Supports `--dry-run` for preview.
|
|
31
|
+
Fixes the root cause of `/forge:health` config-incompleteness findings:
|
|
32
|
+
the update flow now deterministically backfills missing config fields
|
|
33
|
+
instead of relying on the LLM agent to compose them manually.
|
|
34
|
+
|
|
35
|
+
### Changed
|
|
36
|
+
|
|
37
|
+
- **update.md Step 4** — calls `manage-config backfill` after writing
|
|
38
|
+
`paths.forgeRoot`/`paths.forgeRef`, ensuring all schema-required and
|
|
39
|
+
schema-defaulted fields are present after every update.
|
|
40
|
+
- **forge-init Phase 4** — now writes `paths.forgeRef` (FR-010) and calls
|
|
41
|
+
`manage-config backfill` after `paths.forgeRoot`, ensuring fresh inits
|
|
42
|
+
also have complete config fields.
|
|
43
|
+
- **`parseArgs` in manage-config.cjs** — boolean flags (e.g. `--dry-run`)
|
|
44
|
+
without a following value are now treated as `true` instead of being
|
|
45
|
+
silently dropped.
|
|
46
|
+
|
|
47
|
+
## [0.20.1] — 2026-05-25
|
|
48
|
+
|
|
49
|
+
### Fixed
|
|
50
|
+
|
|
51
|
+
- **build-payload: expand schemas/ (dotless) to mirror full forge/forge/schemas/.**
|
|
52
|
+
Previously only structure-manifest.json was copied to the dotless schemas/
|
|
53
|
+
dir. Plugin command files (health.md, etc.) that reference
|
|
54
|
+
`$FORGE_ROOT/schemas/config.schema.json` at runtime couldn't find it — the
|
|
55
|
+
file only existed in `.schemas/` (dotted). The build now recursively copies
|
|
56
|
+
all `.json` files from forge/forge/schemas/ into schemas/ (skipping
|
|
57
|
+
`__tests__`), including enum-catalog.json, transitions/*.json, and all
|
|
58
|
+
schema files. This resolves /forge:health config-validation failures in
|
|
59
|
+
forge-cli projects.
|
|
60
|
+
|
|
10
61
|
## [0.20.0] — 2026-05-25
|
|
11
62
|
|
|
12
63
|
### Changed
|
|
@@ -16,6 +16,18 @@ import * as path from "node:path";
|
|
|
16
16
|
import { deleteInitProgress } from "../init-progress.js";
|
|
17
17
|
import { execFileAsync, runToolAdvisory } from "../lib/exec-helpers.js";
|
|
18
18
|
import { getRefreshKbLinksHandler } from "../refresh-kb-links.js";
|
|
19
|
+
/** Read the bundled forge version from .claude-plugin/plugin.json */
|
|
20
|
+
function getBundledForgeVersion(bundleRoot) {
|
|
21
|
+
try {
|
|
22
|
+
const pluginPath = path.join(bundleRoot, ".claude-plugin", "plugin.json");
|
|
23
|
+
const raw = fs.readFileSync(pluginPath, "utf8");
|
|
24
|
+
const plugin = JSON.parse(raw);
|
|
25
|
+
return typeof plugin.version === "string" ? plugin.version : "0.0.0";
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return "0.0.0";
|
|
29
|
+
}
|
|
30
|
+
}
|
|
19
31
|
// ── Private helpers ────────────────────────────────────────────────────────
|
|
20
32
|
function updateGitignore(cwd, ctx) {
|
|
21
33
|
const gitignorePath = path.join(cwd, ".gitignore");
|
|
@@ -175,6 +187,13 @@ export async function runPhase4(ctx4) {
|
|
|
175
187
|
forgeRootToStamp = bundleRoot;
|
|
176
188
|
}
|
|
177
189
|
await runToolAdvisory(manageConfigTool, ["set", "paths.forgeRoot", forgeRootToStamp], cwd, ctx, "step 4-1 paths.forgeRoot");
|
|
190
|
+
// Write paths.forgeRef (FR-010) — the bundled plugin version
|
|
191
|
+
const bundledVersion = getBundledForgeVersion(bundleRoot);
|
|
192
|
+
if (bundledVersion && bundledVersion !== "0.0.0") {
|
|
193
|
+
await runToolAdvisory(manageConfigTool, ["set", "paths.forgeRef", bundledVersion], cwd, ctx, "step 4-1 paths.forgeRef");
|
|
194
|
+
}
|
|
195
|
+
// Backfill missing config fields from schema defaults (version, paths.*, etc.)
|
|
196
|
+
await runToolAdvisory(manageConfigTool, ["backfill", "--forge-root", bundleRoot], cwd, ctx, "step 4-1 config backfill");
|
|
178
197
|
}
|
|
179
198
|
const schemasSrc = path.join(bundleRoot, ".schemas");
|
|
180
199
|
const schemasDest = path.join(cwd, ".forge", "schemas");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase4-register.js","sourceRoot":"","sources":["../../../../src/extensions/forgecli/forge-init/phase4-register.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"phase4-register.js","sourceRoot":"","sources":["../../../../src/extensions/forgecli/forge-init/phase4-register.ts"],"names":[],"mappings":"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"}
|
|
@@ -244,7 +244,7 @@ Now evaluate — **stop at the first matching row and follow only that row's act
|
|
|
244
244
|
|
|
245
245
|
| # | Condition | Action |
|
|
246
246
|
|---|-----------|--------|
|
|
247
|
-
| 1 | `REMOTE_VERSION` == `LOCAL_VERSION` and `LOCAL_VERSION` == baseline | Print "Forge {LOCAL_VERSION} — up to date. No pending migrations." and **
|
|
247
|
+
| 1 | `REMOTE_VERSION` == `LOCAL_VERSION` and `LOCAL_VERSION` == baseline | Print "Forge {LOCAL_VERSION} — up to date. No pending migrations." Then execute **Step 4 config refresh** (paths.forgeRoot, paths.forgeRef, backfill) and proceed to **Step 5**. |
|
|
248
248
|
| 2 | `REMOTE_VERSION` == `LOCAL_VERSION` and `LOCAL_VERSION` != baseline | Jump to **Step 2B** (project migration — no install needed). |
|
|
249
249
|
| 3 | `IS_CANARY` is true | Jump to **Step 2B** (canary — no install needed). |
|
|
250
250
|
| 4 | `LOCAL_VERSION` > `REMOTE_VERSION` | Print "Local version ({LOCAL_VERSION}) is ahead of the release channel ({REMOTE_VERSION}). No install needed — applying any pending project migrations." then jump to **Step 2B**. |
|
|
@@ -469,6 +469,13 @@ node "$FORGE_ROOT/tools/banners.cjs" --phase 4 7 "Apply migrations" forge \
|
|
|
469
469
|
> before any migration targets or regeneration commands execute. This ensures all
|
|
470
470
|
> subsequent tool invocations in Step 4 (including `build-init-context.cjs` called
|
|
471
471
|
> by regeneration sub-steps) use the current, correct plugin path.
|
|
472
|
+
>
|
|
473
|
+
> **Config refresh always runs.** The Step 4 header section (forgeRoot, forgeRef,
|
|
474
|
+
> backfill) executes regardless of whether migrations are pending — even Row 1
|
|
475
|
+
> ("up to date") proceeds through this section before skipping to Step 5. The
|
|
476
|
+
> "skip to Step 5" directive skips only the migration chain walk and regeneration.
|
|
477
|
+
> Missing config fields can accumulate across version boundaries; backfill ensures
|
|
478
|
+
> the config stays structurally complete after every `/forge:update` invocation.
|
|
472
479
|
|
|
473
480
|
**Refresh `paths.forgeRoot` before applying migrations:**
|
|
474
481
|
|
|
@@ -485,6 +492,21 @@ LOCAL_VERSION=$(node -e "console.log(require('$FORGE_ROOT/.claude-plugin/plugin.
|
|
|
485
492
|
node "$FORGE_ROOT/tools/manage-config.cjs" set paths.forgeRef "$LOCAL_VERSION"
|
|
486
493
|
```
|
|
487
494
|
|
|
495
|
+
**Backfill missing config fields:** Config schema evolves across versions — new
|
|
496
|
+
required or recommended fields may have been added since the project was last
|
|
497
|
+
initialized. `manage-config backfill` reads the config schema, compares it
|
|
498
|
+
against the current `.forge/config.json`, and writes defaults for any missing
|
|
499
|
+
fields with schema-defined defaults. It also stamps the top-level `version`
|
|
500
|
+
field from the bundled plugin version. Run after setting forgeRoot/forgeRef:
|
|
501
|
+
|
|
502
|
+
```sh
|
|
503
|
+
node "$FORGE_ROOT/tools/manage-config.cjs" backfill --forge-root "$FORGE_ROOT"
|
|
504
|
+
```
|
|
505
|
+
|
|
506
|
+
If the project was recently initialized and all fields are already present, the
|
|
507
|
+
command prints `〇 No missing fields to backfill.` and exits cleanly —
|
|
508
|
+
no changes, no side effects.
|
|
509
|
+
|
|
488
510
|
Determine the baseline version:
|
|
489
511
|
- Use `migratedFrom` from `CACHE_FILE` (set in Step 1)
|
|
490
512
|
- Or the `--from <version>` argument if provided
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "forge/_defs/phaseSummary.schema.json",
|
|
4
|
+
"title": "PhaseSummary",
|
|
5
|
+
"description": "Shared shape for terse structured summaries of phase artifacts. Single-sourced under _defs/ and $ref'd from task.schema.json and bug.schema.json. Optional bug-only `route` field is permitted on every $ref site but only meaningful on the triage phase summary written by meta-fix-bug.md.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["objective", "written_at"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"objective": { "type": "string", "maxLength": 280 },
|
|
10
|
+
"key_changes": { "type": "array", "items": { "type": "string", "maxLength": 200 }, "maxItems": 12 },
|
|
11
|
+
"findings": { "type": "array", "items": { "type": "string", "maxLength": 200 }, "maxItems": 12 },
|
|
12
|
+
"verdict": { "type": "string", "enum": ["approved", "revision", "n/a"] },
|
|
13
|
+
"written_at": { "type": "string", "format": "date-time" },
|
|
14
|
+
"artifact_ref":{ "type": "string", "description": "Relative path to the full artifact" },
|
|
15
|
+
"route": { "type": "string", "enum": ["A", "B"], "description": "Fix-bug pipeline route decision. Only set on the triage phase summary by meta-fix-bug.md. A = short-circuit (skip plan-fix + review-plan); B = full loop (default). Optional and meaningless on non-triage phases — see meta-fix-bug.md § Triage Judgement." }
|
|
16
|
+
},
|
|
17
|
+
"additionalProperties": false
|
|
18
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "forge/bug.schema.json",
|
|
4
|
+
"title": "Bug",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": ["bugId", "title", "severity", "status", "path", "reportedAt"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"bugId": { "type": "string" },
|
|
9
|
+
"title": { "type": "string" },
|
|
10
|
+
"description": { "type": "string" },
|
|
11
|
+
"severity": { "type": "string", "enum": ["critical", "major", "minor"] },
|
|
12
|
+
"status": { "type": "string", "enum": ["reported", "triaged", "in-progress", "fixed"] },
|
|
13
|
+
"path": { "type": "string" },
|
|
14
|
+
"rootCauseCategory": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"enum": ["validation", "auth", "business-rule", "data-integrity", "race-condition", "integration", "configuration", "regression"]
|
|
17
|
+
},
|
|
18
|
+
"similarBugs": { "type": "array", "items": { "type": "string" } },
|
|
19
|
+
"checklistItemAdded": { "type": "boolean" },
|
|
20
|
+
"businessRuleUpdated": { "type": "boolean" },
|
|
21
|
+
"githubIssue": { "type": "string", "format": "uri" },
|
|
22
|
+
"reportedAt": { "type": "string", "format": "date-time" },
|
|
23
|
+
"resolvedAt": { "type": "string", "format": "date-time" },
|
|
24
|
+
"summaries": {
|
|
25
|
+
"type": "object",
|
|
26
|
+
"description": "Terse structured summaries of phase artifacts. Optional; full artifacts on disk remain authoritative.",
|
|
27
|
+
"properties": {
|
|
28
|
+
"plan": { "$ref": "_defs/phaseSummary.schema.json" },
|
|
29
|
+
"triage": { "$ref": "_defs/phaseSummary.schema.json" },
|
|
30
|
+
"review_plan": { "$ref": "_defs/phaseSummary.schema.json" },
|
|
31
|
+
"implementation": { "$ref": "_defs/phaseSummary.schema.json" },
|
|
32
|
+
"code_review": { "$ref": "_defs/phaseSummary.schema.json" },
|
|
33
|
+
"validation": { "$ref": "_defs/phaseSummary.schema.json" },
|
|
34
|
+
"approve": { "$ref": "_defs/phaseSummary.schema.json" }
|
|
35
|
+
},
|
|
36
|
+
"additionalProperties": false
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"additionalProperties": false
|
|
40
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "forge/collation-state.schema.json",
|
|
4
|
+
"title": "Collation State",
|
|
5
|
+
"description": "Last-collation watermark written to .forge/store/COLLATION_STATE.json",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["collatedAt", "featureCount", "sprintCount", "taskCount", "bugCount"],
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"collatedAt": { "type": "string", "format": "date-time" },
|
|
11
|
+
"featureCount": { "type": "integer", "minimum": 0 },
|
|
12
|
+
"sprintCount": { "type": "integer", "minimum": 0 },
|
|
13
|
+
"taskCount": { "type": "integer", "minimum": 0 },
|
|
14
|
+
"bugCount": { "type": "integer", "minimum": 0 }
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://github.com/Entelligentsia/agentic-skills/forge/config.schema.json",
|
|
4
|
+
"title": "ForgeConfig",
|
|
5
|
+
"description": "Schema for .forge/config.json — the per-project Forge configuration file. Canonical single-source schema (FORGE-S25-T12 reconciled sdlc-config.schema.json into this file and deleted the sibling). Generated by /forge:init and refreshed by /forge:update.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["version", "project", "paths"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"version": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"description": "Config schema version (e.g. '1.0'). Used for migration support."
|
|
12
|
+
},
|
|
13
|
+
"project": {
|
|
14
|
+
"type": "object",
|
|
15
|
+
"required": ["prefix", "name"],
|
|
16
|
+
"properties": {
|
|
17
|
+
"prefix": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"description": "Short prefix for task/sprint/bug IDs (e.g. ACME)"
|
|
20
|
+
},
|
|
21
|
+
"name": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"description": "Human-readable project name"
|
|
24
|
+
},
|
|
25
|
+
"description": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"description": "One-line project description"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"stack": {
|
|
32
|
+
"type": "object",
|
|
33
|
+
"description": "Detected/declared project technology stack. Optional fields nullable because not every project ships e.g. a frontend or task queue.",
|
|
34
|
+
"properties": {
|
|
35
|
+
"languages": {
|
|
36
|
+
"type": "array",
|
|
37
|
+
"items": { "type": "string" },
|
|
38
|
+
"description": "Primary languages detected"
|
|
39
|
+
},
|
|
40
|
+
"framework": { "type": ["string", "null"], "description": "Primary backend framework" },
|
|
41
|
+
"frontendFramework": { "type": ["string", "null"], "description": "Frontend framework if detected" },
|
|
42
|
+
"database": { "type": ["string", "null"], "description": "Primary database" },
|
|
43
|
+
"taskQueue": { "type": ["string", "null"], "description": "Task queue if detected (celery, sidekiq, etc.)" },
|
|
44
|
+
"containerisation": { "type": ["string", "null"], "description": "Container tooling if detected" }
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"commands": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"description": "Resolved project tooling commands. Workflows reference these via {COMMAND_TEST} / {LINT_COMMAND} placeholders.",
|
|
50
|
+
"properties": {
|
|
51
|
+
"test": { "type": "string" },
|
|
52
|
+
"build": { "type": "string" },
|
|
53
|
+
"lint": { "type": "string" },
|
|
54
|
+
"syntaxCheck": {
|
|
55
|
+
"type": "object",
|
|
56
|
+
"additionalProperties": { "type": "string" }
|
|
57
|
+
},
|
|
58
|
+
"migrate": { "type": "string" },
|
|
59
|
+
"migrateCheck": { "type": "string" }
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"paths": {
|
|
63
|
+
"type": "object",
|
|
64
|
+
"required": ["engineering", "store", "forgeRoot"],
|
|
65
|
+
"properties": {
|
|
66
|
+
"engineering": { "type": "string", "default": "engineering" },
|
|
67
|
+
"store": { "type": "string", "default": ".forge/store" },
|
|
68
|
+
"workflows": { "type": "string", "default": ".forge/workflows" },
|
|
69
|
+
"commands": { "type": "string", "default": ".claude/commands" },
|
|
70
|
+
"templates": { "type": "string", "default": ".forge/templates" },
|
|
71
|
+
"customCommands": { "type": "string", "default": "engineering/commands", "description": "Directory for project-specific custom pipeline phase commands. Files here are workflow scripts invoked directly by the orchestrator via the phase workflow field." },
|
|
72
|
+
"forgeRoot": { "type": "string", "description": "Absolute path to the installed Forge plugin root. Set at init time and refreshed by /forge:update. Used by generated workflows to invoke Forge tools without requiring $CLAUDE_PLUGIN_ROOT in subagent contexts." },
|
|
73
|
+
"forgeRef": { "type": "string", "description": "Pinned Forge plugin reference (tag or commit) the project was generated against." }
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"pipeline": {
|
|
77
|
+
"type": "object",
|
|
78
|
+
"description": "Optional pipeline customisation for the default pipeline",
|
|
79
|
+
"properties": {
|
|
80
|
+
"skipPhases": {
|
|
81
|
+
"type": "array",
|
|
82
|
+
"items": { "type": "string" }
|
|
83
|
+
},
|
|
84
|
+
"maxReviewIterations": {
|
|
85
|
+
"type": "integer",
|
|
86
|
+
"minimum": 1,
|
|
87
|
+
"default": 3
|
|
88
|
+
},
|
|
89
|
+
"includeTokenDataInBugReports": {
|
|
90
|
+
"type": "boolean",
|
|
91
|
+
"description": "If set, silently opt in (true) or out (false) of appending sprint token usage data to Forge bug reports. When absent, the user is prompted at report time."
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"pipelines": {
|
|
96
|
+
"type": "object",
|
|
97
|
+
"description": "Named pipeline definitions. Each key is a pipeline name that tasks can reference via their `pipeline` field. The `default` pipeline is used when a task has no `pipeline` field. Projects define custom pipelines to route tasks to specialized agent commands.",
|
|
98
|
+
"additionalProperties": {
|
|
99
|
+
"type": "object",
|
|
100
|
+
"required": ["phases"],
|
|
101
|
+
"properties": {
|
|
102
|
+
"description": {
|
|
103
|
+
"type": "string",
|
|
104
|
+
"description": "Human-readable description of when to use this pipeline"
|
|
105
|
+
},
|
|
106
|
+
"phases": {
|
|
107
|
+
"type": "array",
|
|
108
|
+
"description": "Ordered list of pipeline phases. Each phase maps to a slash command.",
|
|
109
|
+
"items": {
|
|
110
|
+
"type": "object",
|
|
111
|
+
"required": ["command", "role"],
|
|
112
|
+
"properties": {
|
|
113
|
+
"command": {
|
|
114
|
+
"type": "string",
|
|
115
|
+
"description": "Slash command name (without /) to invoke for this phase"
|
|
116
|
+
},
|
|
117
|
+
"role": {
|
|
118
|
+
"type": "string",
|
|
119
|
+
"enum": ["plan", "review-plan", "implement", "review-code", "validate", "approve", "commit"],
|
|
120
|
+
"description": "Semantic role of this phase in the pipeline lifecycle"
|
|
121
|
+
},
|
|
122
|
+
"model": {
|
|
123
|
+
"type": "string",
|
|
124
|
+
"description": "Optional model override for this phase"
|
|
125
|
+
},
|
|
126
|
+
"maxIterations": {
|
|
127
|
+
"type": "integer",
|
|
128
|
+
"description": "Max revision loop iterations for review phases",
|
|
129
|
+
"default": 3
|
|
130
|
+
},
|
|
131
|
+
"on_revision": {
|
|
132
|
+
"type": "string",
|
|
133
|
+
"description": "Command name of the phase to re-invoke on 'Revision Required'. Defaults to the nearest preceding non-review phase if omitted."
|
|
134
|
+
},
|
|
135
|
+
"workflow": {
|
|
136
|
+
"type": "string",
|
|
137
|
+
"description": "Optional path to a workflow file. When set, the orchestrator reads and follows this file directly instead of deriving the workflow from the command name. Use for custom phase commands in engineering/commands/."
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
"installedSkills": {
|
|
146
|
+
"type": "array",
|
|
147
|
+
"items": { "type": "string" },
|
|
148
|
+
"description": "Marketplace skill names installed during forge:init or recommended by forge:health. Used to wire skill invocations into generated personas and workflows.",
|
|
149
|
+
"examples": ["vue-best-practices", "stripe-integration", "claude-api"]
|
|
150
|
+
},
|
|
151
|
+
"sprint": {
|
|
152
|
+
"type": "object",
|
|
153
|
+
"description": "Optional sprint execution configuration",
|
|
154
|
+
"properties": {
|
|
155
|
+
"execution": {
|
|
156
|
+
"type": "object",
|
|
157
|
+
"properties": {
|
|
158
|
+
"mode": {
|
|
159
|
+
"type": "string",
|
|
160
|
+
"enum": ["sequential", "wave-parallel", "full-parallel"],
|
|
161
|
+
"default": "sequential"
|
|
162
|
+
},
|
|
163
|
+
"maxConcurrentAgents": {
|
|
164
|
+
"type": "integer",
|
|
165
|
+
"default": 3
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
"calibrationBaseline": {
|
|
172
|
+
"type": "object",
|
|
173
|
+
"description": "Calibration baseline written by /forge:init after skill generation. Records the state at calibration time so /forge:calibrate can detect drift.",
|
|
174
|
+
"properties": {
|
|
175
|
+
"lastCalibrated": { "type": "string", "description": "ISO date (YYYY-MM-DD) of the last calibration run" },
|
|
176
|
+
"version": { "type": "string", "description": "Plugin version string at calibration time (e.g. 0.9.3)" },
|
|
177
|
+
"masterIndexHash": { "type": "string", "description": "SHA-256 hex digest of the semantic content of engineering/MASTER_INDEX.md at calibration time" },
|
|
178
|
+
"sprintsCovered": { "type": "array", "items": { "type": "string" }, "description": "Sprint IDs whose tasks and outcomes were included in the calibration baseline" }
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
"calibrationHistory": {
|
|
182
|
+
"type": "array",
|
|
183
|
+
"description": "Audit trail of calibration runs. Each entry records the drift categories detected and the patches applied.",
|
|
184
|
+
"items": {
|
|
185
|
+
"type": "object",
|
|
186
|
+
"required": ["date", "version", "categories", "patches"],
|
|
187
|
+
"additionalProperties": false,
|
|
188
|
+
"properties": {
|
|
189
|
+
"date": { "type": "string", "description": "ISO date (YYYY-MM-DD) of this calibration run" },
|
|
190
|
+
"version": { "type": "string", "description": "Plugin version at calibration time" },
|
|
191
|
+
"categories": { "type": "array", "items": { "type": "string" }, "description": "Drift categories detected: technical, business, retrospective, acceptance-criteria" },
|
|
192
|
+
"patches": {
|
|
193
|
+
"type": "array",
|
|
194
|
+
"items": {
|
|
195
|
+
"type": "object",
|
|
196
|
+
"required": ["target", "type", "applied"],
|
|
197
|
+
"additionalProperties": false,
|
|
198
|
+
"properties": {
|
|
199
|
+
"target": { "type": "string", "description": "Regeneration target (e.g. personas:engineer, skills:supervisor-skills)" },
|
|
200
|
+
"type": { "type": "string", "enum": ["regenerate"], "description": "Patch type (currently only 'regenerate' is supported)" },
|
|
201
|
+
"applied": { "type": "boolean", "description": "Whether this patch was applied (true if approved and succeeded, false if skipped or failed)" }
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
},
|
|
208
|
+
"mode": {
|
|
209
|
+
"type": "string",
|
|
210
|
+
"enum": ["full", "fast"],
|
|
211
|
+
"description": "Init mode. 'fast' means scaffolding was generated by /forge:init --fast (stubs present, heavy artifacts deferred to first use). 'full' means all artifacts are generated. Absent on pre-0.12 projects — treated as 'full' by all readers. Flipped to 'full' by /forge:regenerate (default) or /forge:materialize --all."
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
"additionalProperties": false
|
|
215
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.51.1",
|
|
3
|
+
"generated": "2026-05-23",
|
|
4
|
+
"note": "Authoritative enum catalog. Source: build-enum-catalog.cjs. Regenerate via node forge/tools/build-manifest.cjs.",
|
|
5
|
+
"enums": {
|
|
6
|
+
"task.status": [
|
|
7
|
+
"draft",
|
|
8
|
+
"planned",
|
|
9
|
+
"plan-approved",
|
|
10
|
+
"implementing",
|
|
11
|
+
"implemented",
|
|
12
|
+
"review-approved",
|
|
13
|
+
"approved",
|
|
14
|
+
"committed",
|
|
15
|
+
"plan-revision-required",
|
|
16
|
+
"code-revision-required",
|
|
17
|
+
"blocked",
|
|
18
|
+
"escalated",
|
|
19
|
+
"abandoned"
|
|
20
|
+
],
|
|
21
|
+
"sprint.status": [
|
|
22
|
+
"planning",
|
|
23
|
+
"active",
|
|
24
|
+
"completed",
|
|
25
|
+
"retrospective-done",
|
|
26
|
+
"blocked",
|
|
27
|
+
"partially-completed",
|
|
28
|
+
"abandoned"
|
|
29
|
+
],
|
|
30
|
+
"bug.status": [
|
|
31
|
+
"reported",
|
|
32
|
+
"triaged",
|
|
33
|
+
"in-progress",
|
|
34
|
+
"fixed"
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
"commandNames": [
|
|
38
|
+
"forge:sprint-intake",
|
|
39
|
+
"forge:plan",
|
|
40
|
+
"forge:review-plan",
|
|
41
|
+
"forge:implement",
|
|
42
|
+
"forge:review-code",
|
|
43
|
+
"forge:fix-bug",
|
|
44
|
+
"forge:sprint-plan",
|
|
45
|
+
"forge:run-task",
|
|
46
|
+
"forge:run-sprint",
|
|
47
|
+
"forge:collate",
|
|
48
|
+
"forge:retrospective",
|
|
49
|
+
"forge:approve",
|
|
50
|
+
"forge:commit",
|
|
51
|
+
"forge:enhance",
|
|
52
|
+
"forge:quiz-agent",
|
|
53
|
+
"forge:validate",
|
|
54
|
+
"forge:init",
|
|
55
|
+
"forge:health",
|
|
56
|
+
"forge:regenerate",
|
|
57
|
+
"forge:update",
|
|
58
|
+
"forge:add-task",
|
|
59
|
+
"forge:add-pipeline",
|
|
60
|
+
"forge:calibrate",
|
|
61
|
+
"forge:materialize",
|
|
62
|
+
"forge:remove",
|
|
63
|
+
"forge:report-bug",
|
|
64
|
+
"forge:store-query",
|
|
65
|
+
"forge:store-repair",
|
|
66
|
+
"forge:config",
|
|
67
|
+
"forge:ask",
|
|
68
|
+
"forge:store-custodian",
|
|
69
|
+
"forge:refresh-kb-links"
|
|
70
|
+
]
|
|
71
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "forge/event-sidecar.schema.json",
|
|
4
|
+
"title": "Event Sidecar",
|
|
5
|
+
"description": "Subset of event schema — token/cost/duration fields written by agents before canonical merge. All fields other than eventId are optional; presence enforcement happens on the canonical event, not the sidecar.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["eventId"],
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"eventId": { "type": "string", "minLength": 1 },
|
|
11
|
+
"inputTokens": { "type": "integer", "minimum": 0 },
|
|
12
|
+
"outputTokens": { "type": "integer", "minimum": 0 },
|
|
13
|
+
"cacheReadTokens": { "type": "integer", "minimum": 0 },
|
|
14
|
+
"cacheWriteTokens": { "type": "integer", "minimum": 0 },
|
|
15
|
+
"model": { "type": "string", "maxLength": 120 },
|
|
16
|
+
"provider": { "type": "string", "maxLength": 60 },
|
|
17
|
+
"durationMinutes": { "type": "number", "minimum": 0 },
|
|
18
|
+
"startTimestamp": { "type": "string", "format": "date-time" },
|
|
19
|
+
"endTimestamp": { "type": "string", "format": "date-time" },
|
|
20
|
+
"tokenSource": { "type": "string", "enum": ["reported", "estimated"] }
|
|
21
|
+
}
|
|
22
|
+
}
|