forge-orkes 0.44.0 → 0.49.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/package.json +1 -1
- package/template/.claude/agents/verifier.md +8 -4
- package/template/.claude/hooks/forge-model-outcome.sh +177 -0
- package/template/.claude/hooks/forge-reserve.sh +162 -0
- package/template/.claude/hooks/tests/forge-model-outcome.test.sh +108 -0
- package/template/.claude/hooks/tests/forge-reserve.test.sh +121 -0
- package/template/.claude/skills/architecting/SKILL.md +1 -1
- package/template/.claude/skills/executing/SKILL.md +31 -1
- package/template/.claude/skills/forge/SKILL.md +30 -3
- package/template/.claude/skills/planning/SKILL.md +29 -3
- package/template/.claude/skills/prototyping/SKILL.md +88 -0
- package/template/.claude/skills/verifying/SKILL.md +13 -8
- package/template/.forge/FORGE.md +39 -14
- package/template/.forge/migrations/0.46.0-id-reservation-ledger.md +44 -0
- package/template/.forge/templates/plan.md +35 -1
- package/template/.forge/templates/project.yml +4 -0
- package/template/.forge/templates/prototypes/prototype.md +31 -0
|
@@ -29,8 +29,29 @@ must_haves:
|
|
|
29
29
|
truths: # USER-observable when plan is done. Must contain a user verb
|
|
30
30
|
# (see, click, submit, receive, view, download, error, redirect).
|
|
31
31
|
# Internal-only truths like "Schema applied" do NOT satisfy.
|
|
32
|
+
# Entry form: bare string (legacy — remains valid, no migration)
|
|
33
|
+
# OR object with an OPTIONAL executable check:
|
|
32
34
|
- "" # e.g., "User submits signup form and lands on dashboard"
|
|
33
|
-
- ""
|
|
35
|
+
- truth: "" # e.g., "Invalid email shows inline 'must be a valid email' error"
|
|
36
|
+
check: "" # OPTIONAL shell command proving the truth. Semantics:
|
|
37
|
+
# - exit 0 = pass; anything else = fail. The exit code, not
|
|
38
|
+
# agent judgment, is the verdict (executed-evidence rule).
|
|
39
|
+
# - must PRINT WHY it fails — its output feeds executing's
|
|
40
|
+
# auto-fix loop and the verification report (`diff` beats
|
|
41
|
+
# `diff -q`; an assert-with-message beats a bare `test`).
|
|
42
|
+
# - verify content/behavior, not existence (`test -f` proves
|
|
43
|
+
# existence only).
|
|
44
|
+
# - safe to run repeatedly — read-only, or idempotent against
|
|
45
|
+
# durable state (checks run in executing AND verifying,
|
|
46
|
+
# plus auto-fix retries).
|
|
47
|
+
# - authored at planning time, goal-backward, BEFORE code
|
|
48
|
+
# exists — a pre-code check can't be retro-fitted to what
|
|
49
|
+
# got built.
|
|
50
|
+
- truth: "" # A truth that can't be a command (visual, real-device,
|
|
51
|
+
manual: "" # external service) carries a `manual:` route INSTEAD of a
|
|
52
|
+
# check — e.g. "human gate" or "M9 e2e" — never a fake check.
|
|
53
|
+
# executing skips manual truths (no check to run); verifying
|
|
54
|
+
# routes them to HUMAN VERIFICATION NEEDED.
|
|
34
55
|
artifacts: # Files that must exist and be substantive (not stubs).
|
|
35
56
|
# Slice plans typically span 2-4 layers — paths should cross
|
|
36
57
|
# boundaries (component + handler + repo), not cluster in one dir.
|
|
@@ -50,6 +71,19 @@ must_haves:
|
|
|
50
71
|
|
|
51
72
|
<task type="auto">
|
|
52
73
|
<name>Action-oriented task name</name>
|
|
74
|
+
<complexity>standard</complexity> <!-- OPTIONAL (M24). complexity is trivial | standard | complex.
|
|
75
|
+
Routing signal → resolves a model via project.yml
|
|
76
|
+
models.by_complexity (see FORGE.md Model Routing).
|
|
77
|
+
trivial = config/docs/mechanical; standard = ordinary
|
|
78
|
+
feature/fix; complex = cross-layer behavior, tricky logic,
|
|
79
|
+
high blast radius. OMIT the field → the task falls back to
|
|
80
|
+
skill-level model routing, exactly as pre-M24 plans did.
|
|
81
|
+
No migration: a task with neither field parses unchanged. -->
|
|
82
|
+
<task_type>code-feature</task_type> <!-- OPTIONAL (M24). code-feature | code-fix | docs | research |
|
|
83
|
+
config | test. The promotion-ladder BUCKET key — phases
|
|
84
|
+
37-38 learn "model X is proven on task_type Y". Free choice
|
|
85
|
+
from this controlled vocabulary; pick the dominant kind.
|
|
86
|
+
OMIT → task is not bucketed; no effect on legacy plans. -->
|
|
53
87
|
<files>
|
|
54
88
|
- src/path/to/file.tsx (create)
|
|
55
89
|
- src/path/to/other.ts (modify)
|
|
@@ -90,6 +90,10 @@ models:
|
|
|
90
90
|
securing: sonnet # Security analysis needs depth
|
|
91
91
|
debugging: sonnet # Investigation needs solid reasoning
|
|
92
92
|
discussing: sonnet # Conversation needs natural fluency
|
|
93
|
+
# by_complexity: # Per-task complexity -> model (M24). Overrides skills.X — see FORGE.md Model Routing Precedence.
|
|
94
|
+
# trivial: haiku
|
|
95
|
+
# standard: sonnet
|
|
96
|
+
# complex: opus
|
|
93
97
|
|
|
94
98
|
orchestration: # M10 multi-agent orchestration (experimental). Only consulted when M10 is installed.
|
|
95
99
|
# auto: true # false = never auto-route Standard/Full through orchestrating (install = consent; set false to opt out).
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
slug: "{kebab-slug}"
|
|
3
|
+
title: "{short human title}"
|
|
4
|
+
created: "{ISO date}"
|
|
5
|
+
status: exploring # exploring | parked | graduated | discarded
|
|
6
|
+
flag: "{how it's gated — e.g. alpha, ?alpha=1, feature:foo, settings.alphaMockups}"
|
|
7
|
+
goal: "{one line — what are we trying to see before building it for real?}"
|
|
8
|
+
# --- set on resolve ---
|
|
9
|
+
# graduated_to: m-{id} # when status: graduated
|
|
10
|
+
# resolved: "{ISO date}" # when graduated or discarded
|
|
11
|
+
# discard_reason: "..." # when status: discarded
|
|
12
|
+
# parked: "{ISO date}" # when status: parked
|
|
13
|
+
# unpark_when: "..." # when status: parked — what would bring this back
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Prototype: {title}
|
|
17
|
+
|
|
18
|
+
Disposable in-app mockup, gated behind `{flag}`. Not production work — see `.claude/skills/prototyping/SKILL.md`.
|
|
19
|
+
|
|
20
|
+
## Open question
|
|
21
|
+
|
|
22
|
+
{The thing this iteration round is trying to answer / react to right now. Rewrite as it evolves.}
|
|
23
|
+
|
|
24
|
+
## Iterations
|
|
25
|
+
|
|
26
|
+
<!-- One terse line per pass. This is the loop's memory across /clear — keep it scannable, not a design doc. -->
|
|
27
|
+
- {ISO date} — {what this iteration tried, and what to look at}
|
|
28
|
+
|
|
29
|
+
## Notes
|
|
30
|
+
|
|
31
|
+
{Optional: decisions leaning one way, dead ends, things to remember if this graduates.}
|