forge-orkes 0.72.2 → 0.73.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/bin/create-forge.js +6 -4
- package/experimental/m10/source/mcp-server/README.md +2 -2
- package/experimental/m10/source/mcp-server/index.js +2 -2
- package/experimental/m10/source/skills/orchestrating/SKILL.md +7 -3
- package/package.json +1 -1
- package/template/.claude/hooks/forge-reserve.sh +367 -166
- package/template/.claude/hooks/tests/forge-reserve.test.sh +169 -0
- package/template/.claude/skills/chief-of-staff/SKILL.md +1 -0
- package/template/.claude/skills/forge/SKILL.md +8 -6
- package/template/.forge/FORGE.md +3 -3
- package/template/.forge/checks/forge-check-lint.sh +12 -3
- package/template/.forge/checks/forge-hold-check.sh +2 -0
- package/template/.forge/checks/forge-jarvis-awareness.sh +62 -11
- package/template/.forge/checks/forge-jarvis-dispatch.sh +25 -1
- package/template/.forge/checks/forge-jarvis-relay.sh +15 -6
- package/template/.forge/checks/tests/forge-jarvis-awareness.test.sh +53 -0
- package/template/.forge/checks/tests/forge-jarvis-dispatch.test.sh +50 -0
- package/template/.forge/checks/tests/forge-jarvis-relay.test.sh +30 -0
- package/template/.forge/templates/state/desire-path.yml +15 -45
|
@@ -130,6 +130,36 @@ case "$out" in
|
|
|
130
130
|
*) bad "catchup summary" "no while-you-were-away line: $out" ;;
|
|
131
131
|
esac
|
|
132
132
|
|
|
133
|
+
# --- 14-15. BARE BRANCH LOOSENING (issue #25): --list-logs glob against REAL git worktrees on
|
|
134
|
+
# bare m-<id>-slug branches (no forge/ prefix) — --list-logs only needs the notify-log
|
|
135
|
+
# PATH, no id derivation, so this pins the match extension alone (FORGE_JARVIS_REPO_ROOT
|
|
136
|
+
# points the glob at a throwaway fixture repo). --------------------------------------------
|
|
137
|
+
GITROOT="$ROOT/git-fixture"; mkdir -p "$GITROOT/main"
|
|
138
|
+
(
|
|
139
|
+
cd "$GITROOT/main" || exit 1
|
|
140
|
+
git init -q .
|
|
141
|
+
git config user.email t@t.com; git config user.name test
|
|
142
|
+
: > .gitkeep; git add .gitkeep; git commit -q -m init
|
|
143
|
+
git worktree add -q -b m-176-marcy-mcp "$GITROOT/bare-1" >/dev/null 2>&1
|
|
144
|
+
git worktree add -q -b fix-issue-2 "$GITROOT/guard-1" >/dev/null 2>&1
|
|
145
|
+
) >/dev/null 2>&1
|
|
146
|
+
|
|
147
|
+
out="$(FORGE_JARVIS_REPO_ROOT="$GITROOT/main" sh "$RELAY" --list-logs 2>/dev/null)"
|
|
148
|
+
|
|
149
|
+
# 14. bare branch m-176-marcy-mcp emits its notify-log path (pings reach the phone)
|
|
150
|
+
if printf '%s' "$out" | grep -q "$GITROOT/bare-1/.forge/runner-work/notify.log"; then
|
|
151
|
+
ok "bare branch m-176-marcy-mcp: --list-logs emits its notify-log path"
|
|
152
|
+
else
|
|
153
|
+
bad "bare branch --list-logs path" "$out"
|
|
154
|
+
fi
|
|
155
|
+
|
|
156
|
+
# 15. GUARD: a bare-number branch (fix-issue-2, no m- token) emits NO log path
|
|
157
|
+
if ! printf '%s' "$out" | grep -q 'guard-1'; then
|
|
158
|
+
ok "guard: bare-number branch fix-issue-2 (no m- token) emits no log path"
|
|
159
|
+
else
|
|
160
|
+
bad "guard: bare-number branch fix-issue-2 (no m- token) emits no log path" "$out"
|
|
161
|
+
fi
|
|
162
|
+
|
|
133
163
|
# --- summary -----------------------------------------------------------------
|
|
134
164
|
printf '\n%s: %d passed, %d failed\n' "$(basename "$0")" "$PASSED" "$FAILED"
|
|
135
165
|
[ "$FAILED" = 0 ]
|
|
@@ -1,46 +1,16 @@
|
|
|
1
|
-
# Forge Desire-Path Observation —
|
|
2
|
-
#
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
# that is what used to make state/index.yml conflict across worktrees.
|
|
6
|
-
#
|
|
7
|
-
# Filename: state/desire-paths/{YYYY-MM-DD}-{type}-{milestone}-{slug}.yml
|
|
8
|
-
# e.g. state/desire-paths/2026-06-10-recurring_friction-m7-uncommitted-state.yml
|
|
9
|
-
# The date+type+milestone+slug make the name unique, so concurrent agents in
|
|
10
|
-
# different worktrees only ever ADD files — git never has to merge content.
|
|
11
|
-
#
|
|
12
|
-
# Occurrence counts are DERIVED: the `forge` skill globs this directory and
|
|
13
|
-
# groups by (type + normalized note). A pattern appearing in 3+ files is a
|
|
14
|
-
# candidate for framework evolution, surfaced at `forge` boot — the single
|
|
15
|
-
# review owner (see ADR-012).
|
|
16
|
-
#
|
|
17
|
-
# SCOPE decides where a 3+ pattern's fix lands:
|
|
18
|
-
# project = fix targets user-owned files (constitution.md, design-system.md,
|
|
19
|
-
# context.md). Stays in-project.
|
|
20
|
-
# framework = fix targets Forge's own skills/templates. Eligible for UPSTREAM
|
|
21
|
-
# transport — forge review writes a portable block to
|
|
22
|
-
# state/desire-paths/upstream/ and (when gh + forge.upstream_repo
|
|
23
|
-
# are available) offers a GH issue against the Forge repo.
|
|
24
|
-
# Lazy migration: a file with no `scope` is read as `project`.
|
|
1
|
+
# Forge Desire-Path Observation — one file per observation
|
|
2
|
+
# Copy to .forge/state/desire-paths/{YYYY-MM-DD}-{type}-{milestone}-{slug}.yml
|
|
3
|
+
# Append-only: never edit an existing observation file; recurrence is derived
|
|
4
|
+
# by globbing (type + normalized note), not a counter. See FORGE.md § state/desire-paths/.
|
|
25
5
|
|
|
26
|
-
type: ""
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
note: "" # one-line description — the grouping key for occurrence counts
|
|
38
|
-
|
|
39
|
-
# Optional type-specific detail (fill what applies to `type`):
|
|
40
|
-
detail:
|
|
41
|
-
detected: "" # tier_override: what Forge detected
|
|
42
|
-
overridden_to: "" # tier_override: what the user chose
|
|
43
|
-
rule: null # deviation_pattern: 1 | 2 | 3
|
|
44
|
-
correction: "" # user_correction: the repeated correction
|
|
45
|
-
failure_pattern: "" # agent_struggle: how the task fails
|
|
46
|
-
step: "" # skipped_step: the step skipped
|
|
6
|
+
type: "" # recurring_friction | agent_struggle | user_correction (etc. — free-form, grouped by exact string)
|
|
7
|
+
date: "" # ISO 8601 date the observation was made, e.g. "2026-07-23"
|
|
8
|
+
milestone: "" # milestone id, or a short label for non-milestone work (e.g. "quick-task (...)")
|
|
9
|
+
scope: project # project | framework — absent ⇒ project (this repo only; framework ⇒ upstream-eligible per ADR-012)
|
|
10
|
+
suggestion_target: "" # the file/skill this observation would change if acted on
|
|
11
|
+
note: >
|
|
12
|
+
What was observed — concrete enough that a future review can judge recurrence
|
|
13
|
+
(same type + normalized note) without re-reading the original session.
|
|
14
|
+
suggestion: >
|
|
15
|
+
What to do about it, if a fix is proposed. Omit this key when the observation
|
|
16
|
+
has no concrete suggestion yet.
|