forgedock 1.0.22 → 1.1.2
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/README.md +255 -211
- package/bin/batch-runner.mjs +339 -0
- package/bin/cinema.mjs +320 -0
- package/bin/demo.mjs +92 -7
- package/bin/engine/phases.mjs +168 -0
- package/bin/engine/projector.mjs +32 -0
- package/bin/engine/reconcile.mjs +11 -0
- package/bin/engine/runlog.mjs +79 -0
- package/bin/engine/state.mjs +32 -0
- package/bin/engine-cli.mjs +222 -0
- package/bin/engine.mjs +138 -0
- package/bin/forgedock.mjs +896 -1540
- package/bin/hooks/interactive-engine.mjs +509 -0
- package/bin/hooks/pre-tool-use.mjs +498 -0
- package/bin/hooks/subagent-stop-enforce.mjs +197 -0
- package/bin/journey.mjs +841 -0
- package/bin/registry.mjs +139 -0
- package/bin/report.mjs +447 -0
- package/bin/runner.mjs +136 -20
- package/bin/settings-hook.mjs +346 -0
- package/bin/tui.mjs +6 -3
- package/commands/adopt.md +4 -1
- package/commands/analytics.md +4 -1
- package/commands/audit-agents.md +110 -27
- package/commands/audit.md +20 -1
- package/commands/autopilot.md +84 -12
- package/commands/changelog.md +2 -1
- package/commands/ci-audit.md +2 -1
- package/commands/cleanup.md +161 -1
- package/commands/compat-audit.md +2 -1
- package/commands/deploy-info.md +63 -4
- package/commands/design-bench.md +6 -1
- package/commands/design-render-critique-loop.md +2 -1
- package/commands/design.md +1 -0
- package/commands/diagnose.md +2 -1
- package/commands/explain.md +2 -1
- package/commands/forge-stats.md +122 -2
- package/commands/forgedock-init.md +1 -1
- package/commands/geo-audit.md +3 -0
- package/commands/incident-response.md +2 -1
- package/commands/issue.md +24 -3
- package/commands/milestone.md +77 -12
- package/commands/optimize.md +2 -1
- package/commands/orchestrate/config.md +67 -0
- package/commands/orchestrate/phase-1-resolve.md +159 -0
- package/commands/orchestrate/phase-2-triage.md +126 -0
- package/commands/orchestrate/phase-2.5-synthesis.md +156 -0
- package/commands/orchestrate/phase-3-dependency.md +591 -0
- package/commands/orchestrate/phase-4-execution.md +962 -0
- package/commands/orchestrate/phase-5-cleanup.md +47 -0
- package/commands/orchestrate/phase-6-report.md +198 -0
- package/commands/orchestrate/safety.md +62 -0
- package/commands/orchestrate.md +25 -2027
- package/commands/pipeline-health/config.md +34 -0
- package/commands/pipeline-health/phase-1-context.md +180 -0
- package/commands/pipeline-health/phase-2-metrics.md +1729 -0
- package/commands/pipeline-health/phase-3-analyze.md +204 -0
- package/commands/pipeline-health/phase-4-proposals.md +117 -0
- package/commands/pipeline-health/phase-5-report.md +284 -0
- package/commands/pipeline-health/phase-6-summary.md +52 -0
- package/commands/pipeline-health.md +25 -2401
- package/commands/pipeline-resume.md +24 -1
- package/commands/pipeline-status.md +65 -0
- package/commands/qa-sweep.md +4 -1
- package/commands/quality-gate.md +326 -42
- package/commands/replay.md +2 -1
- package/commands/review-pr-agents/api.md +135 -0
- package/commands/review-pr-agents/auth.md +137 -0
- package/commands/review-pr-agents/billing.md +101 -0
- package/commands/review-pr-agents/concurrency.md +145 -0
- package/commands/review-pr-agents/database.md +103 -0
- package/commands/review-pr-agents/frontend.md +89 -0
- package/commands/review-pr-agents/infra.md +385 -0
- package/commands/review-pr-agents/protocols.md +185 -0
- package/commands/review-pr-agents/scraper.md +185 -0
- package/commands/review-pr-agents/security.md +406 -0
- package/commands/review-pr-agents.md +45 -1722
- package/commands/review-pr-staging.md +196 -40
- package/commands/review-pr.md +612 -56
- package/commands/rollback.md +2 -1
- package/commands/scope.md +2 -1
- package/commands/security-audit.md +2 -1
- package/commands/signal-planner.md +623 -0
- package/commands/sync-ecosystem.md +1 -0
- package/commands/test-gate.md +17 -1
- package/commands/validate.md +2 -1
- package/commands/work-on/build/architect.md +28 -0
- package/commands/work-on/build/context.md +2 -0
- package/commands/work-on/build/implement.md +19 -5
- package/commands/work-on/build/validate.md +62 -6
- package/commands/work-on/build.md +187 -30
- package/commands/work-on/close.md +132 -5
- package/commands/work-on/decompose.md +19 -1
- package/commands/work-on/investigate.md +117 -2
- package/commands/work-on/review.md +48 -4
- package/commands/work-on-monolithic.md +8 -2
- package/commands/work-on.md +247 -7
- package/docs/BRAND.md +16 -5
- package/docs/CI.md +2 -2
- package/docs/CODEX.md +36 -1
- package/docs/CONFIG.md +44 -42
- package/docs/FORGE-PROTOCOL.md +15 -1064
- package/docs/anthropic-devrel-outreach.md +2 -2
- package/docs/articles/command-decomposition-token-savings.md +214 -0
- package/docs/articles/model-release-playbook.md +131 -0
- package/docs/articles/per-repo-adaptive-scripts-token-savings.md +27 -25
- package/docs/claude-breakpoints.json +75 -5
- package/docs/design/abc-benchmark.md +1 -1
- package/docs/design/design-spec-schema.md +1 -1
- package/docs/design/divergent-generation.md +1 -1
- package/docs/design/eval-gate-runbook.md +178 -0
- package/docs/design/show-hn-draft.md +26 -1
- package/docs/design/token-cost-baseline-1298.md +59 -0
- package/docs/eval/README.md +117 -0
- package/docs/eval/corpus/seed-v1.json +6 -0
- package/docs/eval/published/claude-sonnet-4-6-2026-07-04.json +33 -0
- package/docs/site/annotations-explained.md +24 -0
- package/docs/site/command-learning-path.md +51 -14
- package/docs/site/command-reference.md +339 -113
- package/docs/site/for-companies.md +95 -0
- package/docs/site/forge-annotation-protocol.md +12 -256
- package/docs/site/getting-started.md +58 -12
- package/docs/site/github-is-the-memory.md +113 -0
- package/docs/site/how-it-works.md +3 -13
- package/docs/site/index.md +10 -2
- package/docs/spec/eval-run-result.md +147 -0
- package/docs/spec/forge-protocol-v1.md +441 -18
- package/docs/spec/label-state-machine.md +55 -0
- package/docs/spec/review-protocol.md +158 -0
- package/docs/spec-graph-schema.md +28 -0
- package/docs/superpowers/plans/2026-07-03-cinematic-onboarding-tui.md +2339 -0
- package/docs/superpowers/plans/2026-07-03-durable-execution-engine.md +1223 -0
- package/docs/superpowers/specs/2026-07-03-cinematic-onboarding-tui-design.md +157 -0
- package/docs/superpowers/specs/2026-07-03-durable-execution-engine-design.md +194 -0
- package/docs/superpowers/specs/2026-07-04-economic-self-governance-design.md +181 -0
- package/docs/superpowers/specs/2026-07-04-provenance-trail-design.md +189 -0
- package/examples/forgedock-demo/README.md +41 -22
- package/examples/forgedock-demo/issues/06-bug-tags-type-validation.md +43 -0
- package/examples/forgedock-demo/issues/07-bug-negative-offset-pagination.md +42 -0
- package/examples/forgedock-demo/issues/08-bug-patch-mass-assignment.md +49 -0
- package/examples/forgedock-demo/issues/09-bug-count-injection.md +47 -0
- package/examples/forgedock-demo/issues/10-feature-sort-param.md +39 -0
- package/examples/forgedock-demo/issues/11-feature-patch-tags.md +37 -0
- package/examples/forgedock-demo/issues/12-feature-bulk-create.md +42 -0
- package/examples/forgedock-demo/issues/13-feature-archive-notes.md +46 -0
- package/examples/forgedock-demo/issues/14-refactor-extract-title-validation.md +41 -0
- package/examples/forgedock-demo/issues/15-refactor-protected-route-flag.md +43 -0
- package/examples/forgedock-demo/issues/16-refactor-extract-store.md +45 -0
- package/examples/forgedock-demo/issues/17-perf-tags-dedup-set.md +35 -0
- package/examples/forgedock-demo/issues/18-perf-remove-redundant-sort.md +37 -0
- package/examples/forgedock-demo/issues/19-docs-api-reference-full.md +53 -0
- package/examples/forgedock-demo/issues/20-docs-intentional-flaw-convention.md +46 -0
- package/examples/forgedock-demo/scripts/smoke.js +18 -1
- package/examples/forgedock-demo/src/db.js +36 -11
- package/examples/forgedock-demo/src/routes/notes.js +106 -9
- package/examples/forgedock-demo/src/server.js +4 -1
- package/package.json +12 -4
- package/packages/protocol/LICENSE +21 -0
- package/packages/protocol/src/cli.js +135 -0
- package/packages/protocol/src/emit.js +146 -0
- package/packages/protocol/src/index.js +43 -0
- package/packages/protocol/src/parse.js +229 -0
- package/packages/protocol/src/types.js +171 -0
- package/packages/protocol/src/validate.js +122 -0
- package/scripts/bench-topology-cost.mjs +372 -0
- package/scripts/check-command-docs-drift.sh +198 -0
- package/scripts/check-protocol-restatements.sh +176 -0
- package/scripts/check-registry/README.md +72 -0
- package/scripts/check-registry/manifest.json +6 -0
- package/scripts/code-index.sh +454 -0
- package/scripts/conformance-check.mjs +168 -0
- package/scripts/doctor-pipeline-state.sh +484 -0
- package/scripts/eval-gate-baseline.json +17 -0
- package/scripts/eval-gate-scorecard.mjs +242 -0
- package/scripts/eval-scorecard-aggregator.mjs +252 -0
- package/scripts/flaky-quarantine.sh +241 -0
- package/scripts/forge-annotation.sh +567 -0
- package/scripts/issue-dedup.sh +236 -0
- package/scripts/validate-annotation-node.mjs +233 -0
- package/scripts/verify-env-vars.sh +18 -2
- package/scripts/verify-host-headers.sh +4 -4
- package/scripts/verify-route-registration.sh +2 -2
- package/scripts/worktree-lifecycle.sh +202 -0
- package/templates/devdocs/agent/using-forgedock.md +14 -0
package/docs/CONFIG.md
CHANGED
|
@@ -12,18 +12,26 @@ echo "forge.yaml" >> .gitignore # if your credentials path is sensitive
|
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
## CLI Flags
|
|
15
|
+
## CLI Flags
|
|
16
16
|
|
|
17
|
-
`npx forgedock init`
|
|
17
|
+
`--verbose` and `--fast` apply to both `npx forgedock` (the full install journey) and `npx forgedock init` (config-only regeneration); `--manual` and `--minimal` apply to `init` only:
|
|
18
18
|
|
|
19
19
|
| Flag | Behavior |
|
|
20
20
|
|------|----------|
|
|
21
|
-
| `--manual` |
|
|
22
|
-
| `--
|
|
21
|
+
| `--manual` | `npx forgedock init` only. Skips the annotated review screen and asks plain, one-field-at-a-time prompts instead, pre-filled with the detected values as defaults. |
|
|
22
|
+
| `--minimal` | `npx forgedock init` only. Skips detection enrichment and the review screen entirely, and writes a short `forge.yaml` containing only the three required sections (`project`, `paths`, `branches`) with detected values. |
|
|
23
|
+
| `--verbose` | Shows each field's detection source and confidence rationale on the review screen (e.g. `git remote`, `package.json`, `gh api`), instead of only flagging low-confidence fields. |
|
|
24
|
+
| `--fast` | Skips the animation/motion frames and jumps straight to the static screens. |
|
|
23
25
|
|
|
24
|
-
|
|
26
|
+
**Environment variables:**
|
|
25
27
|
|
|
26
|
-
|
|
28
|
+
| Variable | Behavior |
|
|
29
|
+
|----------|----------|
|
|
30
|
+
| `FORGE_NO_MOTION=1` | Same effect as `--fast` — disables animation frames. Color is unaffected. |
|
|
31
|
+
| `NO_COLOR=1` | Disables ANSI color output only. Motion is unaffected (monochrome choreography). |
|
|
32
|
+
| Non-TTY / piped output (or `CI=1`) | Plain sequential log: no color **and** no animation. |
|
|
33
|
+
|
|
34
|
+
The default (no flags) is the annotated review screen: detection runs, AI enrichment fills in what it can (when an API key is available), and you review the result on a single screen — Enter accepts everything, low-confidence fields are flagged with a `# TODO(forgedock:<field>)` comment if left unedited.
|
|
27
35
|
|
|
28
36
|
---
|
|
29
37
|
|
|
@@ -326,7 +334,7 @@ review:
|
|
|
326
334
|
|
|
327
335
|
Path configuration for the devdocs knowledge tree. Pipeline agents (work-on, review-pr, etc.) read these files as **authoritative project knowledge** before acting.
|
|
328
336
|
|
|
329
|
-
|
|
337
|
+
Create the devdocs tree by copying the seed templates from `devdocs/templates/` (in this repo) into your configured path, or scaffold it manually by creating `devdocs/project/architecture.md`, `devdocs/agent/using-forgedock.md`, and an optional `devdocs/index.yaml`.
|
|
330
338
|
|
|
331
339
|
```yaml
|
|
332
340
|
devdocs:
|
|
@@ -337,9 +345,9 @@ devdocs:
|
|
|
337
345
|
| Field | Type | Required | Description |
|
|
338
346
|
|-------|------|----------|-------------|
|
|
339
347
|
| `path` | string (relative path) | No | Path to the devdocs tree, relative to project root. Default: `devdocs`. |
|
|
340
|
-
| `index_path` | string (relative or absolute path) | No | Path to the selective loading index file. Default: `{path}/index.yaml`. When the index file exists at this path, agents read it first (~400 tokens) and load only docs whose domain matches the current issue's labels. When absent, agents fall back to loading all docs with `applies_to: work-on` (backward compatible).
|
|
348
|
+
| `index_path` | string (relative or absolute path) | No | Path to the selective loading index file. Default: `{path}/index.yaml`. When the index file exists at this path, agents read it first (~400 tokens) and load only docs whose domain matches the current issue's labels. When absent, agents fall back to loading all docs with `applies_to: work-on` (backward compatible). Create the index manually or copy the seed template from `devdocs/templates/`. |
|
|
341
349
|
|
|
342
|
-
**Commands that use this section**: `
|
|
350
|
+
**Commands that use this section**: `work-on/build/context` (Phase C-1), `work-on/build/architect` (Phase A0)
|
|
343
351
|
|
|
344
352
|
### Selective Loading (index.yaml)
|
|
345
353
|
|
|
@@ -358,14 +366,11 @@ When `devdocs/index.yaml` exists, agents use **domain-filtered selective loading
|
|
|
358
366
|
|
|
359
367
|
**Backward compatibility**: If `index.yaml` is absent, behavior is unchanged — all docs with `applies_to: work-on` are loaded. No migration required for existing devdocs trees.
|
|
360
368
|
|
|
361
|
-
Scaffold the index
|
|
362
|
-
```bash
|
|
363
|
-
npx forgedock docs init
|
|
364
|
-
```
|
|
369
|
+
Scaffold the index manually by creating `devdocs/index.yaml` (or copy the seed template from `devdocs/templates/` in the ForgeDock repo).
|
|
365
370
|
|
|
366
371
|
### Migration from `review.context`
|
|
367
372
|
|
|
368
|
-
If you previously stored project context in `forge.yaml → review.context`, move that content into the appropriate devdocs file
|
|
373
|
+
If you previously stored project context in `forge.yaml → review.context`, move that content into the appropriate devdocs file:
|
|
369
374
|
|
|
370
375
|
| `review.context` content | Target devdocs file |
|
|
371
376
|
|--------------------------|---------------------|
|
|
@@ -686,46 +691,43 @@ Downstream consumers read `field.value` for the raw value and `field.confidence`
|
|
|
686
691
|
|
|
687
692
|
---
|
|
688
693
|
|
|
689
|
-
##
|
|
694
|
+
## SessionStart Hook Integration
|
|
690
695
|
|
|
691
|
-
ForgeDock
|
|
696
|
+
ForgeDock does **not** write anything into your project's `CLAUDE.md` or `AGENTS.md`. Instead, `npx forgedock` registers a `SessionStart` hook in `~/.claude/settings.json` — a small script that runs at the start of every Claude Code session and prints ForgeDock's context straight to that session, without touching any file in your repo.
|
|
692
697
|
|
|
693
698
|
### How It Works
|
|
694
699
|
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
```
|
|
698
|
-
<!-- BEGIN FORGEDOCK -->
|
|
699
|
-
## ForgeDock — Autonomous Development Pipeline
|
|
700
|
-
...command index and conventions...
|
|
701
|
-
<!-- END FORGEDOCK -->
|
|
702
|
-
```
|
|
700
|
+
The hook resolves the current directory's state and reacts accordingly:
|
|
703
701
|
|
|
704
|
-
|
|
702
|
+
| State | Behavior |
|
|
703
|
+
|-------|----------|
|
|
704
|
+
| `managed-active` (`forge.yaml` present, not opted out) | Prints a summary of `forge.yaml` (project, repo, branches) plus the available pipeline commands |
|
|
705
|
+
| `managed-active`, no `forge.yaml` yet | Suggests running `npx forgedock init` |
|
|
706
|
+
| `managed-optedout` | Completely silent — no output |
|
|
707
|
+
| `unmanaged` | Prints a one-time, suppressible nudge to run `npx forgedock enable` |
|
|
705
708
|
|
|
706
|
-
|
|
709
|
+
The hook entry is registered idempotently: re-installing (`npx forgedock update`) will not duplicate it, and unrelated hooks or settings in `~/.claude/settings.json` are left untouched. If `settings.json` is malformed, the installer skips writing rather than risk corrupting it.
|
|
707
710
|
|
|
708
711
|
### Commands
|
|
709
712
|
|
|
710
713
|
| Command | Action |
|
|
711
714
|
|---------|--------|
|
|
712
|
-
| `npx forgedock
|
|
713
|
-
| `npx forgedock
|
|
715
|
+
| `npx forgedock` / `npx forgedock install` | Registers the SessionStart hook (along with installing commands and writing `forge.yaml`) |
|
|
716
|
+
| `npx forgedock update` | Re-registers the hook (relink only — does not touch `forge.yaml`) |
|
|
717
|
+
| `npx forgedock uninstall` | Removes the hook entry from `settings.json` |
|
|
714
718
|
|
|
715
719
|
### Opting Out
|
|
716
720
|
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
Alternatively, keep the markers but edit the content between them freely — ForgeDock will replace that section on the next run, so any manual edits inside the markers will be overwritten.
|
|
720
|
-
|
|
721
|
-
### Re-generating
|
|
722
|
-
|
|
723
|
-
The command index inside the block is auto-generated from the `description:` frontmatter in each `commands/*.md` file. To refresh it after a ForgeDock update:
|
|
721
|
+
Per-directory, independent of the global hook registration. Each command acts on the current working directory — run it inside the project directory:
|
|
724
722
|
|
|
725
723
|
```bash
|
|
726
|
-
npx forgedock
|
|
724
|
+
npx forgedock disable # the current directory goes silent (managed-optedout)
|
|
725
|
+
npx forgedock enable # re-activate the current directory
|
|
726
|
+
npx forgedock status # show the current directory's resolved state
|
|
727
727
|
```
|
|
728
728
|
|
|
729
|
+
See [Per-Directory State Registry](#per-directory-state-registry) below for how opt-out state is tracked.
|
|
730
|
+
|
|
729
731
|
---
|
|
730
732
|
|
|
731
733
|
## Per-Directory State Registry
|
|
@@ -788,22 +790,22 @@ If you downgrade to a build older than PR #467 **and** your project is accessed
|
|
|
788
790
|
- The one-time "Enable ForgeDock here?" nudge may reappear once.
|
|
789
791
|
- No data is lost. No crash. Fail-open behaviour holds throughout.
|
|
790
792
|
|
|
791
|
-
**Recovery**: after downgrading, re-apply your opt-out with the older build:
|
|
793
|
+
**Recovery**: after downgrading, re-apply your opt-out with the older build (run inside the project directory):
|
|
792
794
|
|
|
793
795
|
```bash
|
|
794
|
-
npx forgedock disable
|
|
796
|
+
npx forgedock disable
|
|
795
797
|
```
|
|
796
798
|
|
|
797
799
|
This re-writes the entry under the key form the older build expects.
|
|
798
800
|
|
|
799
801
|
### Managing Opt-Out State
|
|
800
802
|
|
|
801
|
-
Use the `forgedock enable` and `forgedock disable` commands to add or remove a directory from the opt-out set:
|
|
803
|
+
Use the `forgedock enable` and `forgedock disable` commands to add or remove a directory from the opt-out set. Each command acts on the current working directory by default — run it inside the project directory, or pass an explicit path:
|
|
802
804
|
|
|
803
805
|
```bash
|
|
804
|
-
npx forgedock enable [dir] # Remove directory from opt-out set (default: cwd)
|
|
805
|
-
npx forgedock disable [dir] # Add directory to opt-out set (default: cwd)
|
|
806
|
-
npx forgedock status [dir] # Show resolved state
|
|
806
|
+
npx forgedock enable [dir] # Remove a directory from the opt-out set (default: cwd)
|
|
807
|
+
npx forgedock disable [dir] # Add a directory to the opt-out set (default: cwd)
|
|
808
|
+
npx forgedock status [dir] # Show a directory's resolved state (default: cwd)
|
|
807
809
|
```
|
|
808
810
|
|
|
809
811
|
---
|