forgedock 1.0.22 → 1.1.1
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 +217 -218
- package/bin/cinema.mjs +320 -0
- package/bin/engine/phases.mjs +148 -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 +27 -0
- package/bin/engine-cli.mjs +50 -0
- package/bin/engine.mjs +138 -0
- package/bin/forgedock.mjs +464 -1491
- package/bin/journey.mjs +783 -0
- package/bin/runner.mjs +80 -13
- package/bin/settings-hook.mjs +112 -0
- package/bin/tui.mjs +6 -3
- package/commands/autopilot.md +4 -4
- package/commands/deploy-info.md +5 -3
- package/commands/design-bench.md +1 -0
- package/commands/design-render-critique-loop.md +1 -0
- package/commands/design.md +1 -0
- package/commands/forge-stats.md +1 -0
- package/commands/issue.md +1 -1
- package/commands/orchestrate.md +27 -9
- package/commands/quality-gate.md +80 -34
- package/commands/review-pr-agents.md +7 -7
- package/commands/review-pr.md +21 -4
- package/commands/work-on/build/implement.md +16 -4
- package/commands/work-on/build/validate.md +38 -1
- package/commands/work-on/build.md +27 -9
- package/commands/work-on/close.md +2 -2
- package/commands/work-on/review.md +24 -0
- package/commands/work-on-monolithic.md +1 -0
- package/commands/work-on.md +45 -3
- package/docs/BRAND.md +6 -2
- package/docs/CONFIG.md +39 -34
- package/docs/site/.vitepress/config.mjs +85 -0
- package/docs/site/getting-started.md +15 -8
- package/docs/site/index.md +1 -1
- 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/package.json +10 -4
- 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/commands/work-on.md
CHANGED
|
@@ -835,7 +835,17 @@ esac
|
|
|
835
835
|
|
|
836
836
|
<!-- FORGE:PHASE_COMPLETE — Entering Phase 3 (Build). See Universal Phase Dispatcher: sub-phases 3A–3M execute in sequence. No sub-phase completion is terminal. -->
|
|
837
837
|
|
|
838
|
-
**Skip if**: `<!-- FORGE:BUILDER -->`
|
|
838
|
+
**Skip if**: `<!-- FORGE:BUILDER:COMPLETE -->` is present in a BUILDER comment. <!-- Added: forge#1305 — require completion marker, not mere presence of BUILDER annotation -->
|
|
839
|
+
|
|
840
|
+
**Partial build detection**: If `<!-- FORGE:BUILDER -->` exists BUT `<!-- FORGE:BUILDER:COMPLETE -->` is ABSENT → the build was interrupted after implement.md Phase I6 (comment posted) but before validate.md Phase V5 (commit). Delete the partial comment and restart Phase 3 from the top: <!-- Added: forge#1305 -->
|
|
841
|
+
```bash
|
|
842
|
+
PARTIAL_ID=$(gh api repos/{GH_REPO}/issues/{NUMBER}/comments \
|
|
843
|
+
--jq '[.[] | select(.body | contains("FORGE:BUILDER") and (contains("FORGE:BUILDER:COMPLETE") | not))] | last | .id // ""')
|
|
844
|
+
if [ -n "$PARTIAL_ID" ]; then
|
|
845
|
+
gh api repos/{GH_REPO}/issues/comments/$PARTIAL_ID -X DELETE
|
|
846
|
+
echo "Deleted partial FORGE:BUILDER comment (no FORGE:BUILDER:COMPLETE) — restarting build"
|
|
847
|
+
fi
|
|
848
|
+
```
|
|
839
849
|
|
|
840
850
|
**CRITICAL: You MUST execute ALL sub-phases 3A–3M in order. Sub-phases 3C.5 (context) and 3C.6 (architect) are skipped ONLY for TRIVIAL tasks and Investigation tasks — see Phase 3B for classification. For STANDARD and COMPLEX tasks they post mandatory `FORGE:CONTEXT` and `FORGE:ARCHITECT` comments that Phase 3F reads as its primary input. Skipping them without a TRIVIAL/Investigation classification degrades build quality and causes review findings. After each sub-phase, continue to the next — no sub-phase is terminal.**
|
|
841
851
|
|
|
@@ -857,9 +867,9 @@ gh issue view {NUMBER} {GH_FLAG} --json number,title,body,labels,state,milestone
|
|
|
857
867
|
gh api repos/{GH_REPO}/issues/{NUMBER}/comments \
|
|
858
868
|
--jq '.[] | select(.body | contains("FORGE:INVESTIGATOR")) | .body'
|
|
859
869
|
|
|
860
|
-
# Check if build already completed
|
|
870
|
+
# Check if build already completed (require FORGE:BUILDER:COMPLETE — not just FORGE:BUILDER)
|
|
861
871
|
gh api repos/{GH_REPO}/issues/{NUMBER}/comments \
|
|
862
|
-
--jq '.[] | select(.body | contains("FORGE:BUILDER")) | .body'
|
|
872
|
+
--jq '.[] | select(.body | contains("FORGE:BUILDER:COMPLETE")) | .body'
|
|
863
873
|
|
|
864
874
|
# Check for existing COMPLEXITY_BAND from a prior run (resume path)
|
|
865
875
|
EXISTING_FAST_PATH=$(gh api repos/{GH_REPO}/issues/{NUMBER}/comments \
|
|
@@ -1181,6 +1191,14 @@ esac
|
|
|
1181
1191
|
**Determine source branch**:
|
|
1182
1192
|
- Review-finding → parse `**Code branch**: \`{branch}\`` from issue body; branch from `origin/{branch}`
|
|
1183
1193
|
- **Milestone review-finding hybrid lane** (Code branch matches `milestone/*`): High-risk lane. NEVER use `git merge` to resolve conflicts — use `git rebase` or `git cherry-pick` only. If conflicts can't be resolved without merge, post comment, add `needs-human`, STOP.
|
|
1194
|
+
- **Missing ref fallback**: After parsing, verify the Code branch still exists on remote. If not (e.g., the source PR's head branch was deleted post-merge before a corrected stamp took effect), fall back to `PR_BASE` (the lane default) and note the fallback:
|
|
1195
|
+
```bash
|
|
1196
|
+
SOURCE_BRANCH="{CODE_BRANCH_FROM_ISSUE_BODY}"
|
|
1197
|
+
if ! git ls-remote --exit-code origin "$SOURCE_BRANCH" >/dev/null 2>&1; then
|
|
1198
|
+
echo "WARNING: Code branch '$SOURCE_BRANCH' not found on remote — falling back to PR_BASE '$PR_BASE'"
|
|
1199
|
+
SOURCE_BRANCH="$PR_BASE"
|
|
1200
|
+
fi
|
|
1201
|
+
```
|
|
1184
1202
|
- Feature lane (has milestone) → branch from `origin/{PR_BASE}` (PR_BASE now set above)
|
|
1185
1203
|
- Fast lane (no milestone) → branch from `origin/{PR_BASE}` (PR_BASE = `{STAGING_BRANCH}`)
|
|
1186
1204
|
|
|
@@ -1289,6 +1307,11 @@ if iteration == max_iterations AND not PASS:
|
|
|
1289
1307
|
|
|
1290
1308
|
All tool commands are read from `forge.yaml → verification.commands`. When a key is absent, the step logs `SKIPPED — not configured in verification.commands` and continues rather than silently passing.
|
|
1291
1309
|
|
|
1310
|
+
**Track skipped checks** — initialize before any check runs:
|
|
1311
|
+
```bash
|
|
1312
|
+
VERIFICATION_SKIPPED_CHECKS=""
|
|
1313
|
+
```
|
|
1314
|
+
|
|
1292
1315
|
**Python**:
|
|
1293
1316
|
```bash
|
|
1294
1317
|
cd {WORKTREE_PATH}
|
|
@@ -1298,6 +1321,7 @@ if [ -n "$PYTHON_FORMAT" ]; then
|
|
|
1298
1321
|
eval "$PYTHON_FORMAT" 2>&1
|
|
1299
1322
|
else
|
|
1300
1323
|
echo "SKIPPED — python.format not configured in verification.commands"
|
|
1324
|
+
VERIFICATION_SKIPPED_CHECKS="${VERIFICATION_SKIPPED_CHECKS:+$VERIFICATION_SKIPPED_CHECKS, }python.format"
|
|
1301
1325
|
fi
|
|
1302
1326
|
|
|
1303
1327
|
# Compile check always runs (no config needed — catches syntax errors)
|
|
@@ -1317,6 +1341,7 @@ if [ -n "$TS_FORMAT" ]; then
|
|
|
1317
1341
|
eval "$TS_FORMAT" 2>&1
|
|
1318
1342
|
else
|
|
1319
1343
|
echo "SKIPPED — typescript.format not configured in verification.commands"
|
|
1344
|
+
VERIFICATION_SKIPPED_CHECKS="${VERIFICATION_SKIPPED_CHECKS:+$VERIFICATION_SKIPPED_CHECKS, }typescript.format"
|
|
1320
1345
|
fi
|
|
1321
1346
|
|
|
1322
1347
|
if [ -n "$TS_TYPECHECK" ]; then
|
|
@@ -1327,6 +1352,7 @@ elif [ -n "$TS_BUILD" ]; then
|
|
|
1327
1352
|
TS_EXIT=$?
|
|
1328
1353
|
else
|
|
1329
1354
|
echo "SKIPPED — typescript.typecheck and typescript.build not configured in verification.commands"
|
|
1355
|
+
VERIFICATION_SKIPPED_CHECKS="${VERIFICATION_SKIPPED_CHECKS:+$VERIFICATION_SKIPPED_CHECKS, }typescript.typecheck/build"
|
|
1330
1356
|
TS_EXIT=0
|
|
1331
1357
|
fi
|
|
1332
1358
|
```
|
|
@@ -1468,12 +1494,20 @@ Check off completed items, mark phases complete, add PR references.
|
|
|
1468
1494
|
|
|
1469
1495
|
### 3M: Post implementation comment
|
|
1470
1496
|
```bash
|
|
1497
|
+
# Compute verification status from VERIFICATION_SKIPPED_CHECKS (set in Phase 3H)
|
|
1498
|
+
if [ -z "$VERIFICATION_SKIPPED_CHECKS" ]; then
|
|
1499
|
+
VERIFICATION_STATUS="✅ All configured verification commands passed"
|
|
1500
|
+
else
|
|
1501
|
+
VERIFICATION_STATUS="⚠ Verification NOT run: ${VERIFICATION_SKIPPED_CHECKS} — verification.commands not configured for these checks"
|
|
1502
|
+
fi
|
|
1503
|
+
|
|
1471
1504
|
gh issue comment {NUMBER} {GH_FLAG} --body "<!-- FORGE:BUILDER -->
|
|
1472
1505
|
## Implementation Complete
|
|
1473
1506
|
|
|
1474
1507
|
**Branch**: \`{BRANCH}\`
|
|
1475
1508
|
**Commits**: {COMMIT_SHA(S)}
|
|
1476
1509
|
**Files changed**: {COUNT}
|
|
1510
|
+
**Verification Status**: ${VERIFICATION_STATUS}
|
|
1477
1511
|
|
|
1478
1512
|
### Approach
|
|
1479
1513
|
{what was built, key decisions}
|
|
@@ -1887,6 +1921,13 @@ This check is **audit-only** — it annotates the trajectory for visibility. It
|
|
|
1887
1921
|
Post `<!-- FORGE:TRAJECTORY -->` comment with phase-by-phase results table:
|
|
1888
1922
|
|
|
1889
1923
|
```bash
|
|
1924
|
+
# Compute verification row from VERIFICATION_SKIPPED_CHECKS (set in Phase 3H)
|
|
1925
|
+
if [ -z "$VERIFICATION_SKIPPED_CHECKS" ]; then
|
|
1926
|
+
VERIFICATION_ROW="✅ Ran"
|
|
1927
|
+
else
|
|
1928
|
+
VERIFICATION_ROW="⚠ Skipped — verification.commands not configured for: ${VERIFICATION_SKIPPED_CHECKS}"
|
|
1929
|
+
fi
|
|
1930
|
+
|
|
1890
1931
|
gh issue comment {NUMBER} {GH_FLAG} --body "<!-- FORGE:TRAJECTORY -->
|
|
1891
1932
|
## Pipeline Trajectory — #{NUMBER}
|
|
1892
1933
|
|
|
@@ -1897,6 +1938,7 @@ gh issue comment {NUMBER} {GH_FLAG} --body "<!-- FORGE:TRAJECTORY -->
|
|
|
1897
1938
|
| Phase 2: Decomposition | ⏭ Skipped | {reason} |
|
|
1898
1939
|
| Phase 3: Build | ✅ Complete | Branch: \`{BRANCH}\` |
|
|
1899
1940
|
| Phase 3G: Quality Gate | ✅ Gate passed | {iterations} iterations |
|
|
1941
|
+
| Phase 3H: Verification | ${VERIFICATION_ROW} | |
|
|
1900
1942
|
| Phase 4–5: Review + PR | {REVIEW_ROW} | PR #{PR_NUMBER} → \`{PR_BASE}\` |
|
|
1901
1943
|
| Phase 6: Close | ✅ Complete | Issue closed |
|
|
1902
1944
|
|
package/docs/BRAND.md
CHANGED
|
@@ -6,7 +6,10 @@ Status of reserved and blocked brand handles across platforms.
|
|
|
6
6
|
|
|
7
7
|
| Domain | Status |
|
|
8
8
|
|--------|--------|
|
|
9
|
-
| `forgedock.dev` | **
|
|
9
|
+
| `forgedock.dev` | **Unverified** — live content (2026-07-04) is a third-party product unrelated to ForgeDock; registrar verification pending. Do not use as a public-facing link until resolved. |
|
|
10
|
+
| `forgedock.io` | **Parked** — Porkbun parked page, HTTP-only (HTTPS does not connect). Not controlled by RapierCraft Studios. Do not use as a public-facing link. |
|
|
11
|
+
|
|
12
|
+
> **Rule**: No public ForgeDock surface (npm homepage, repo description, plugin manifests, docs) may point at a domain until its live content is verified as controlled by RapierCraft Studios.
|
|
10
13
|
|
|
11
14
|
## npm
|
|
12
15
|
|
|
@@ -45,7 +48,8 @@ Social handle registration is an operational task. Reserve handles before public
|
|
|
45
48
|
|
|
46
49
|
| Platform | Action |
|
|
47
50
|
|----------|--------|
|
|
48
|
-
| Domain |
|
|
51
|
+
| Domain (forgedock.dev) | Unverified — registrar check pending; do not use as live surface |
|
|
52
|
+
| Domain (forgedock.io) | Parked — not controlled by RapierCraft Studios; do not use as live surface |
|
|
49
53
|
| npm | Done |
|
|
50
54
|
| GitHub org slug | Blocked — use variant for App slug |
|
|
51
55
|
| Social handles | Reserve before L1 public launch |
|
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
|
|
|
@@ -686,46 +694,43 @@ Downstream consumers read `field.value` for the raw value and `field.confidence`
|
|
|
686
694
|
|
|
687
695
|
---
|
|
688
696
|
|
|
689
|
-
##
|
|
697
|
+
## SessionStart Hook Integration
|
|
690
698
|
|
|
691
|
-
ForgeDock
|
|
699
|
+
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
700
|
|
|
693
701
|
### How It Works
|
|
694
702
|
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
```
|
|
698
|
-
<!-- BEGIN FORGEDOCK -->
|
|
699
|
-
## ForgeDock — Autonomous Development Pipeline
|
|
700
|
-
...command index and conventions...
|
|
701
|
-
<!-- END FORGEDOCK -->
|
|
702
|
-
```
|
|
703
|
+
The hook resolves the current directory's state and reacts accordingly:
|
|
703
704
|
|
|
704
|
-
|
|
705
|
+
| State | Behavior |
|
|
706
|
+
|-------|----------|
|
|
707
|
+
| `managed-active` (`forge.yaml` present, not opted out) | Prints a summary of `forge.yaml` (project, repo, branches) plus the available pipeline commands |
|
|
708
|
+
| `managed-active`, no `forge.yaml` yet | Suggests running `npx forgedock init` |
|
|
709
|
+
| `managed-optedout` | Completely silent — no output |
|
|
710
|
+
| `unmanaged` | Prints a one-time, suppressible nudge to run `npx forgedock enable` |
|
|
705
711
|
|
|
706
|
-
|
|
712
|
+
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
713
|
|
|
708
714
|
### Commands
|
|
709
715
|
|
|
710
716
|
| Command | Action |
|
|
711
717
|
|---------|--------|
|
|
712
|
-
| `npx forgedock
|
|
713
|
-
| `npx forgedock
|
|
718
|
+
| `npx forgedock` / `npx forgedock install` | Registers the SessionStart hook (along with installing commands and writing `forge.yaml`) |
|
|
719
|
+
| `npx forgedock update` | Re-registers the hook (relink only — does not touch `forge.yaml`) |
|
|
720
|
+
| `npx forgedock uninstall` | Removes the hook entry from `settings.json` |
|
|
714
721
|
|
|
715
722
|
### Opting Out
|
|
716
723
|
|
|
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:
|
|
724
|
+
Per-directory, independent of the global hook registration. Each command acts on the current working directory — run it inside the project directory:
|
|
724
725
|
|
|
725
726
|
```bash
|
|
726
|
-
npx forgedock
|
|
727
|
+
npx forgedock disable # the current directory goes silent (managed-optedout)
|
|
728
|
+
npx forgedock enable # re-activate the current directory
|
|
729
|
+
npx forgedock status # show the current directory's resolved state
|
|
727
730
|
```
|
|
728
731
|
|
|
732
|
+
See [Per-Directory State Registry](#per-directory-state-registry) below for how opt-out state is tracked.
|
|
733
|
+
|
|
729
734
|
---
|
|
730
735
|
|
|
731
736
|
## Per-Directory State Registry
|
|
@@ -788,22 +793,22 @@ If you downgrade to a build older than PR #467 **and** your project is accessed
|
|
|
788
793
|
- The one-time "Enable ForgeDock here?" nudge may reappear once.
|
|
789
794
|
- No data is lost. No crash. Fail-open behaviour holds throughout.
|
|
790
795
|
|
|
791
|
-
**Recovery**: after downgrading, re-apply your opt-out with the older build:
|
|
796
|
+
**Recovery**: after downgrading, re-apply your opt-out with the older build (run inside the project directory):
|
|
792
797
|
|
|
793
798
|
```bash
|
|
794
|
-
npx forgedock disable
|
|
799
|
+
npx forgedock disable
|
|
795
800
|
```
|
|
796
801
|
|
|
797
802
|
This re-writes the entry under the key form the older build expects.
|
|
798
803
|
|
|
799
804
|
### Managing Opt-Out State
|
|
800
805
|
|
|
801
|
-
Use the `forgedock enable` and `forgedock disable` commands to add or remove a directory from the opt-out set:
|
|
806
|
+
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
807
|
|
|
803
808
|
```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
|
|
809
|
+
npx forgedock enable [dir] # Remove a directory from the opt-out set (default: cwd)
|
|
810
|
+
npx forgedock disable [dir] # Add a directory to the opt-out set (default: cwd)
|
|
811
|
+
npx forgedock status [dir] # Show a directory's resolved state (default: cwd)
|
|
807
812
|
```
|
|
808
813
|
|
|
809
814
|
---
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { defineConfig } from 'vitepress'
|
|
2
|
+
|
|
3
|
+
export default defineConfig({
|
|
4
|
+
title: 'ForgeDock',
|
|
5
|
+
description: 'Autonomous AI development pipeline that uses GitHub as a structured knowledge graph for Claude Code agents.',
|
|
6
|
+
lang: 'en-US',
|
|
7
|
+
|
|
8
|
+
// Deploy to GitHub Pages at /
|
|
9
|
+
base: '/',
|
|
10
|
+
|
|
11
|
+
head: [
|
|
12
|
+
['link', { rel: 'icon', href: '/favicon.ico' }],
|
|
13
|
+
['meta', { name: 'theme-color', content: '#7C3AED' }],
|
|
14
|
+
['meta', { property: 'og:type', content: 'website' }],
|
|
15
|
+
['meta', { property: 'og:site_name', content: 'ForgeDock' }],
|
|
16
|
+
],
|
|
17
|
+
|
|
18
|
+
themeConfig: {
|
|
19
|
+
logo: 'https://avatars.githubusercontent.com/in/3731547?s=40',
|
|
20
|
+
siteTitle: 'ForgeDock',
|
|
21
|
+
|
|
22
|
+
nav: [
|
|
23
|
+
{ text: 'Quick Start', link: '/getting-started' },
|
|
24
|
+
{ text: 'Commands', link: '/command-reference' },
|
|
25
|
+
{ text: 'Annotations', link: '/annotations-explained' },
|
|
26
|
+
{
|
|
27
|
+
text: 'GitHub',
|
|
28
|
+
link: 'https://github.com/RapierCraftStudios/ForgeDock',
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
|
|
32
|
+
sidebar: [
|
|
33
|
+
{
|
|
34
|
+
text: 'Get Started',
|
|
35
|
+
items: [
|
|
36
|
+
{ text: 'Quick Start', link: '/getting-started' },
|
|
37
|
+
{ text: 'How It Works', link: '/how-it-works' },
|
|
38
|
+
{ text: 'Troubleshooting', link: '/troubleshooting' },
|
|
39
|
+
],
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
text: 'Reference',
|
|
43
|
+
items: [
|
|
44
|
+
{ text: 'Command Reference', link: '/command-reference' },
|
|
45
|
+
{ text: 'Command Learning Path', link: '/command-learning-path' },
|
|
46
|
+
{ text: 'FORGE Annotation Protocol', link: '/forge-annotation-protocol' },
|
|
47
|
+
{ text: 'Annotations Explained', link: '/annotations-explained' },
|
|
48
|
+
],
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
text: 'Guides',
|
|
52
|
+
items: [
|
|
53
|
+
{ text: 'ForgeDock vs. Manual Workflows', link: '/vs-manual-workflows' },
|
|
54
|
+
],
|
|
55
|
+
},
|
|
56
|
+
],
|
|
57
|
+
|
|
58
|
+
socialLinks: [
|
|
59
|
+
{ icon: 'github', link: 'https://github.com/RapierCraftStudios/ForgeDock' },
|
|
60
|
+
{ icon: 'npm', link: 'https://www.npmjs.com/package/forgedock' },
|
|
61
|
+
],
|
|
62
|
+
|
|
63
|
+
footer: {
|
|
64
|
+
message: 'Released under the AGPL-3.0 License.',
|
|
65
|
+
copyright: 'Copyright © 2024–2026 RapierCraft Studios',
|
|
66
|
+
},
|
|
67
|
+
|
|
68
|
+
editLink: {
|
|
69
|
+
pattern: 'https://github.com/RapierCraftStudios/ForgeDock/edit/main/docs/site/:path',
|
|
70
|
+
text: 'Edit this page on GitHub',
|
|
71
|
+
},
|
|
72
|
+
|
|
73
|
+
search: {
|
|
74
|
+
provider: 'local',
|
|
75
|
+
},
|
|
76
|
+
|
|
77
|
+
outline: {
|
|
78
|
+
level: [2, 3],
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
|
|
82
|
+
markdown: {
|
|
83
|
+
lineNumbers: false,
|
|
84
|
+
},
|
|
85
|
+
})
|
|
@@ -71,24 +71,31 @@ ForgeDock Doctor — Installation Health Check
|
|
|
71
71
|
All checks passed. ForgeDock installation is healthy.
|
|
72
72
|
```
|
|
73
73
|
|
|
74
|
-
It exits `0` when everything passes and `1` if any check fails, so you can also use it in CI.
|
|
74
|
+
It exits `0` when everything passes and `1` if any check fails, so you can also use it in CI.
|
|
75
75
|
|
|
76
76
|
> Prefer a quick spot-check? `ls ~/.claude/commands/ | grep -E "work-on|review-pr|quality-gate"` should list `work-on.md`, `review-pr.md`, and `quality-gate.md`.
|
|
77
77
|
|
|
78
78
|
---
|
|
79
79
|
|
|
80
|
-
## Step 2:
|
|
80
|
+
## Step 2: Your Config Is Already There
|
|
81
81
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
The fastest way to get a working config is the `--minimal` flag, which scans your repo and writes just the required sections with detected values:
|
|
82
|
+
`npx forgedock` in Step 1 ran the full install journey — including repo detection and a reviewed `forge.yaml` — so there's no separate config step to run. If you need to redo detection later (moved the repo, renamed a branch), or want a leaner config with just the required sections, re-run:
|
|
85
83
|
|
|
86
84
|
```bash
|
|
87
85
|
cd /path/to/your/project
|
|
88
86
|
npx forgedock init --minimal
|
|
89
87
|
```
|
|
90
88
|
|
|
91
|
-
|
|
89
|
+
**Optional: enrich the config.** Once `forge.yaml` exists, open Claude Code in your project directory and run `/forgedock-init` to fill in the optional sections that plain detection can't infer:
|
|
90
|
+
|
|
91
|
+
- Project board connection (GitHub Projects v2)
|
|
92
|
+
- Satellite repo routing (multi-repo setups)
|
|
93
|
+
- Review context (tech stack, known pitfalls)
|
|
94
|
+
- Service URLs for health checks
|
|
95
|
+
|
|
96
|
+
`/forgedock-init` completes an existing `forge.yaml` — it won't create one from scratch.
|
|
97
|
+
|
|
98
|
+
**Minimal `forge.yaml` example:**
|
|
92
99
|
|
|
93
100
|
```yaml
|
|
94
101
|
project:
|
|
@@ -110,7 +117,7 @@ That's the whole config. Run `npx forgedock doctor` to confirm it's valid.
|
|
|
110
117
|
|
|
111
118
|
> **The three required sections are `project`, `paths`, and `branches`** — `npx forgedock init --minimal` auto-detects `paths` for you (so worktrees land in the right place) and you rarely need to touch it. Everything else (project board, review context, verification commands, multi-repo routing) is optional and falls back to sensible defaults. Browse [`forge.yaml.example`](https://github.com/RapierCraftStudios/ForgeDock/blob/main/forge.yaml.example) and [`docs/CONFIG.md`](https://github.com/RapierCraftStudios/ForgeDock/blob/main/docs/CONFIG.md) when you're ready to customize.
|
|
112
119
|
|
|
113
|
-
**Prefer guided, AI-powered setup?** Open Claude Code in your project directory and run `/forgedock-init` instead — it scans your repo and fills in the optional sections (repo owner/name, worktree path, branch strategy, project board) for you.
|
|
120
|
+
**Prefer guided, AI-powered setup?** Open Claude Code in your project directory and run `/forgedock-init` instead — it scans your repo and fills in the optional sections (repo owner/name, worktree path, branch strategy, project board) for you.
|
|
114
121
|
|
|
115
122
|
---
|
|
116
123
|
|
|
@@ -200,7 +207,7 @@ The symlink wasn't created. Re-run `npx forgedock` and check `ls ~/.claude/comma
|
|
|
200
207
|
|
|
201
208
|
**`forge.yaml` not found**
|
|
202
209
|
|
|
203
|
-
Run
|
|
210
|
+
Run `npx forgedock init` in your project directory to generate it, or copy `forge.yaml.example` from the ForgeDock repo and edit it. Once it exists, `/forgedock-init` inside Claude Code can fill in the optional sections.
|
|
204
211
|
|
|
205
212
|
**`gh` auth errors**
|
|
206
213
|
|
package/docs/site/index.md
CHANGED
|
@@ -37,7 +37,7 @@ No more coordinating between agent sessions. No more lost context. No more start
|
|
|
37
37
|
|
|
38
38
|
- [GitHub Repository](https://github.com/RapierCraftStudios/ForgeDock)
|
|
39
39
|
- [npm Package](https://www.npmjs.com/package/forgedock)
|
|
40
|
-
- [Configuration Reference](
|
|
40
|
+
- [Configuration Reference](https://github.com/RapierCraftStudios/ForgeDock/blob/main/docs/CONFIG.md)
|
|
41
41
|
- [Report an Issue](https://github.com/RapierCraftStudios/ForgeDock/issues/new)
|
|
42
42
|
|
|
43
43
|
---
|