@cassiomc1/forgeloop 1.12.0 → 1.13.0
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/.github/copilot-instructions.md +1 -1
- package/AGENTS.md +1 -1
- package/CLAUDE.md +1 -1
- package/CONTRIBUTING.md +90 -0
- package/DOCS_INDEX.md +13 -11
- package/ENG/c-development-eng.md +112 -0
- package/ENG/cpp-development-eng.md +109 -0
- package/ENG/dotnet-aspnetcore-development-eng.md +401 -0
- package/ENG/go-development-eng.md +103 -0
- package/ENG/java-development-eng.md +125 -0
- package/ENG/nodejs-backend-development-eng.md +605 -0
- package/ENG/php-development-eng.md +104 -0
- package/ENG/rust-development-eng.md +422 -0
- package/ENG/sql-development-eng.md +108 -0
- package/ENG/swift-development-eng.md +111 -0
- package/ENG/typescript-development-eng.md +108 -0
- package/GUIDE_ROUTER.md +418 -9
- package/QUALITY_SCORECARD.md +1 -0
- package/README.md +44 -33
- package/THIRD_PARTY_NOTICES.md +19 -7
- package/completions/_forgeloop +3 -3
- package/completions/forgeloop.bash +3 -3
- package/completions/forgeloop.fish +7 -0
- package/docs/AGENT_PROTOCOL_SUMMARY.md +55 -2
- package/docs/CLI_REFERENCE.md +28 -6
- package/docs/DOCUMENTATION_GUIDE.md +2 -1
- package/docs/GETTING_STARTED.md +59 -0
- package/docs/PACKAGE_CONTENTS.md +28 -14
- package/docs/RECIPES.md +23 -0
- package/docs/RELEASE_CHECKLIST.md +30 -2
- package/docs/TROUBLESHOOTING.md +100 -2
- package/docs/documentation-manifest.json +652 -0
- package/docs/protocol-requirements.json +77 -0
- package/package.json +19 -4
- package/schemas/routing-input.schema.json +1 -1
- package/scripts/CI_VALIDATORS.md +84 -11
- package/scripts/generate-agent-protocol-summary.mjs +36 -0
- package/src/commands/next.js +19 -7
- package/src/commands/task-create.js +84 -25
- package/src/commands/task-list.js +22 -2
- package/src/config/guides.json +44 -0
- package/src/core/build-script.js +151 -0
- package/src/core/c-cpp-project.js +143 -0
- package/src/core/cli-command-definitions.js +8 -1
- package/src/core/command-executors.js +5 -3
- package/src/core/command-input.js +140 -102
- package/src/core/contract-presets.js +82 -0
- package/src/core/error-codes.js +3 -3
- package/src/core/filesystem.js +1 -10
- package/src/core/go-project.js +206 -0
- package/src/core/java-project.js +403 -0
- package/src/core/multi-language-project.js +117 -0
- package/src/core/next-explanation.js +63 -0
- package/src/core/php-project.js +85 -0
- package/src/core/project-detection.js +1760 -52
- package/src/core/reconcile-closure.js +4 -1
- package/src/core/router.js +156 -3
- package/src/core/rust-project.js +400 -0
- package/src/core/sql-project.js +141 -0
- package/src/core/swift-project.js +200 -0
- package/src/core/typescript-project.js +349 -0
- package/src/core/xml-structure.js +123 -0
package/docs/TROUBLESHOOTING.md
CHANGED
|
@@ -7,6 +7,7 @@ This guide provides symptom-first recovery procedures for common ForgeLoop proto
|
|
|
7
7
|
## Quick Symptom Index
|
|
8
8
|
|
|
9
9
|
- [`preflight` is `BLOCKED`](#symptom-preflight-is-blocked)
|
|
10
|
+
- [Project-aware .NET routing is missing](#symptom-project-aware-net-routing-is-missing)
|
|
10
11
|
- [`forgeloop next` returns `RESOLVE_BLOCKER`](#symptom-forgeloop-next-returns-resolve_blocker)
|
|
11
12
|
- [`forgeloop next` returns `RECORD_DIAGNOSIS`](#symptom-forgeloop-next-returns-record_diagnosis)
|
|
12
13
|
- [Progress is `STALLED` or `forgeloop next` returns `CHANGE_STRATEGY`](#symptom-progress-is-stalled)
|
|
@@ -37,6 +38,7 @@ This guide provides symptom-first recovery procedures for common ForgeLoop proto
|
|
|
37
38
|
- [Repository search fails](#symptom-repository-search-fails)
|
|
38
39
|
- [Persistent search host is unavailable](#symptom-persistent-search-host-is-unavailable)
|
|
39
40
|
- [Persistent search host ownership is unverified or stale](#symptom-persistent-search-host-ownership-is-unverified-or-stale)
|
|
41
|
+
- [Local validation tier is unavailable or reports `NOT_VERIFIED`](#symptom-local-validation-tier-is-unavailable-or-reports-not_verified)
|
|
40
42
|
- [Another harness cannot resume the task](#symptom-another-harness-cannot-resume)
|
|
41
43
|
- [Task claim conflict or recovered task](#symptom-task-creation-blocked-by-a-write-claim-conflict-e_task_scope_conflict)
|
|
42
44
|
- [Stable Error & Reason Code Reference](#stable-error-and-reason-codes)
|
|
@@ -54,6 +56,102 @@ forgeloop protocol-info --json
|
|
|
54
56
|
```
|
|
55
57
|
<!-- END FORGELOOP EXAMPLE -->
|
|
56
58
|
|
|
59
|
+
### Symptom: local validation tier is unavailable or reports `NOT_VERIFIED`
|
|
60
|
+
|
|
61
|
+
#### What it means
|
|
62
|
+
|
|
63
|
+
The selected local validation tier could not run a required external validator
|
|
64
|
+
or setup prerequisite. `NOT_VERIFIED` is an explicit limitation, not a test
|
|
65
|
+
pass and not permission to install tools implicitly.
|
|
66
|
+
|
|
67
|
+
#### Safe recovery
|
|
68
|
+
|
|
69
|
+
1. Check the tier and its command list with `node scripts/run-validation.mjs
|
|
70
|
+
--tier <fast|local|prepush|release> --list`.
|
|
71
|
+
2. Run `npm run mcp:setup` explicitly when MCP dependencies are in scope and
|
|
72
|
+
installation is authorized.
|
|
73
|
+
3. Confirm Python 3.9 or newer is available for the frozen validators.
|
|
74
|
+
4. Re-run the tier and record any still-unavailable check as `NOT_VERIFIED` in
|
|
75
|
+
the validation report.
|
|
76
|
+
|
|
77
|
+
The ordinary PR workflow remains path-aware and always publishes the required
|
|
78
|
+
status contexts; its `validate (22)` aggregator fails closed on an applicable
|
|
79
|
+
job failure, cancellation, or unexpected skip. Local success cannot substitute
|
|
80
|
+
for a required remote security or cross-platform check.
|
|
81
|
+
|
|
82
|
+
### Symptom: the Node.js test suite is slow locally
|
|
83
|
+
|
|
84
|
+
#### Inspect
|
|
85
|
+
|
|
86
|
+
Use the fast, watch, and CI-specific entry points before running the full
|
|
87
|
+
coverage gate:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
npm run test:quick
|
|
91
|
+
npm run test:watch
|
|
92
|
+
npm run test:ci
|
|
93
|
+
npm run coverage
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
`npm test` remains the complete no-coverage suite. `test:ci` runs the same
|
|
97
|
+
discovered files with a two-worker cap for small CI runners; it does not remove
|
|
98
|
+
tests or change assertions. Local coverage remains an explicit command because
|
|
99
|
+
instrumentation adds measurable overhead; the PR unit lane wraps that same
|
|
100
|
+
`test:ci` process across four deterministic shards, then aggregates coverage
|
|
101
|
+
without running the suite again. Docs-only changes run the quick suite only on
|
|
102
|
+
the first Node 24 shard; the other shards and the Node 20 lane do not install.
|
|
103
|
+
|
|
104
|
+
#### Native Windows guidance
|
|
105
|
+
|
|
106
|
+
Repeated Node process startup can be slowed by Windows Defender scanning the
|
|
107
|
+
repository and dependency tree. If local policy permits, request narrowly
|
|
108
|
+
scoped exclusions for the trusted `node.exe`, this repository root, and its
|
|
109
|
+
`node_modules` directory. Never disable Defender globally or exclude an
|
|
110
|
+
untrusted path. WSL2 can be used when native Windows remains slow, while
|
|
111
|
+
Windows CI continues to cover native path and process behavior.
|
|
112
|
+
|
|
113
|
+
### Symptom: Project-aware .NET routing is missing
|
|
114
|
+
|
|
115
|
+
#### What it means
|
|
116
|
+
|
|
117
|
+
The route command did not find confirmed, affected SDK-style .NET project
|
|
118
|
+
evidence, or the task scope does not reach the confirmed project root. ASP.NET
|
|
119
|
+
Core and ABP are conditional overlays on the `dotnet` specialist; they are not
|
|
120
|
+
standalone guides.
|
|
121
|
+
|
|
122
|
+
#### Inspect
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
forgeloop route --task <task-id> --work code --surface backend --json
|
|
126
|
+
forgeloop task-show --task <task-id> --json
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Then inspect the affected scope for a structurally valid `*.csproj`, `*.fsproj`,
|
|
130
|
+
or `*.vbproj` using the supported SDK allowlist. ASP.NET Core requires a web,
|
|
131
|
+
Razor, or Blazor SDK or a `FrameworkReference Include="Microsoft.AspNetCore.App"`.
|
|
132
|
+
ABP requires a structural `PackageReference Include="Volo.Abp..."` in the
|
|
133
|
+
confirmed .NET project.
|
|
134
|
+
|
|
135
|
+
#### Common causes
|
|
136
|
+
|
|
137
|
+
- The repository contains only prose, source snippets, Dockerfiles, lockfiles,
|
|
138
|
+
package names, or a malformed/oversized/non-SDK-style project file.
|
|
139
|
+
- A write claim points outside the project root, outside the applicable shared
|
|
140
|
+
`Directory.Build.*`/NuGet scope, or at a non-member of the named `.sln`/`.slnx`.
|
|
141
|
+
- A mixed Flutter/.NET monorepo was treated as one root; nested project roots
|
|
142
|
+
remain isolated.
|
|
143
|
+
- `projectEvidence.frameworks` contains `aspnetcore` or `abp` without
|
|
144
|
+
`dotnet`; route validation rejects that input.
|
|
145
|
+
|
|
146
|
+
#### Safe recovery
|
|
147
|
+
|
|
148
|
+
Do not add a manual `projectEvidence` claim to force specialist activation.
|
|
149
|
+
Correct the task scope or project structure, rerun the canonical route command,
|
|
150
|
+
and inspect its reason/exclusion codes. Project discovery is bounded and
|
|
151
|
+
non-symlinked; budget exhaustion fails closed. See
|
|
152
|
+
[`GUIDE_ROUTER.md`](../GUIDE_ROUTER.md) for the exact limits and reason-code
|
|
153
|
+
contract.
|
|
154
|
+
|
|
57
155
|
### Symptom: `preflight` is `BLOCKED`
|
|
58
156
|
|
|
59
157
|
#### What it means
|
|
@@ -1332,7 +1430,7 @@ package/process recovery boundary. The relevant stable codes are
|
|
|
1332
1430
|
| `E_RECONCILE_EVIDENCE_FAILED` | The executed objective-satisfaction evidence command did not pass. | Inspect the execution artifact; reconciliation is refused until evidence passes in the current repository. |
|
|
1333
1431
|
| `E_RECONCILE_LEDGER_INVALID` | The append-only event ledger is not valid, so reconciliation cannot be recorded. | Inspect the ledger errors and repair before reconciling. |
|
|
1334
1432
|
| `E_RECONCILE_NOT_STALE` | reconcile-closure was invoked for a work-state checkpoint that is already fresh. | No reconciliation is required; continue the normal lifecycle. |
|
|
1335
|
-
| `E_RECONCILE_PHASE_INVALID` | reconcile-closure was invoked for a task that is not EXECUTING or
|
|
1433
|
+
| `E_RECONCILE_PHASE_INVALID` | reconcile-closure was invoked for a task that is not EXECUTING, VERIFYING, or REVIEWING. | reconcile-closure supports EXECUTING, VERIFYING, or REVIEWING tasks whose objective is already satisfied. |
|
|
1336
1434
|
| `E_RECONCILE_REQUIREMENT_UNKNOWN` | The supplied check id and requirement text do not exactly match a contract verification item of type VERIFICATION. | Supply the exact id and requirement text of an existing contract verification item. |
|
|
1337
1435
|
| `E_RECONCILE_UNSUPPORTED_DRIFT` | Work-state drift includes kinds other than REPOSITORY_CHANGED (contract or required-artifact drift). | Resolve contract or artifact drift through their dedicated recovery surfaces; reconcile-closure only refreshes repository fingerprint drift. |
|
|
1338
1436
|
| `E_REPOSITORY_CHANGED` | The repository fingerprint (branch or HEAD) moved after the work-state checkpoint was recorded. | If the task objective is already satisfied in the current repository, run forgeloop reconcile-closure; otherwise resume from a checkpoint that matches the current repository. |
|
|
@@ -1372,7 +1470,7 @@ package/process recovery boundary. The relevant stable codes are
|
|
|
1372
1470
|
| `E_STATE_LEDGER_DIVERGENCE` | A ForgeLoop protocol validation or lifecycle condition was not satisfied. | Inspect the structured command result, correct the named artifact or prerequisite, then run forgeloop next --json. |
|
|
1373
1471
|
| `E_STATE_MISSING` | A ForgeLoop protocol validation or lifecycle condition was not satisfied. | Inspect the structured command result, correct the named artifact or prerequisite, then run forgeloop next --json. |
|
|
1374
1472
|
| `E_STATE_MISSING_AFTER_PREFLIGHT_READY` | A ForgeLoop protocol validation or lifecycle condition was not satisfied. | Inspect the structured command result, correct the named artifact or prerequisite, then run forgeloop next --json. |
|
|
1375
|
-
| `E_STATE_REVALIDATION_REQUIRED` | The work-state checkpoint must be revalidated before the lifecycle can continue. | Run forgeloop reconcile-closure for externally satisfied EXECUTING tasks, or inspect the freshness reasons for other drift. |
|
|
1473
|
+
| `E_STATE_REVALIDATION_REQUIRED` | The work-state checkpoint must be revalidated before the lifecycle can continue. | Run forgeloop reconcile-closure for externally satisfied EXECUTING, VERIFYING, or REVIEWING tasks, or inspect the freshness reasons for other drift. |
|
|
1376
1474
|
| `E_STATE_TASK_MISMATCH` | A ForgeLoop protocol validation or lifecycle condition was not satisfied. | Inspect the structured command result, correct the named artifact or prerequisite, then run forgeloop next --json. |
|
|
1377
1475
|
| `E_STRATEGY_OSCILLATION` | Correction history oscillates between previously exhausted strategies without new information. | Gather a genuinely new observation or test a materially different falsifiable hypothesis. |
|
|
1378
1476
|
| `E_STRUCTURAL_QUALITY_BASELINE_BINDING_MISMATCH` | Structural-quality evidence did not satisfy its provider, artifact, comparison, or lifecycle boundary. | Reconcile contract, route, policy, scope, provider, or rules drift before using the baseline. |
|