forked from c-fu/arah2
ambek .planning
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"doc_path": "GSD_FIX.md",
|
||||
"claims_checked": 24,
|
||||
"claims_passed": 23,
|
||||
"claims_failed": 1,
|
||||
"warnings": [
|
||||
{
|
||||
"line": 28,
|
||||
"claim": "Verified against the running service via `opencode api get /api/command`: every command was registered as `gsd/gsd-*`",
|
||||
"note": "Historical runtime observation about service state prior to the fix. Cannot be re-verified from the filesystem because the pre-fix state no longer exists and the live service was not queried."
|
||||
},
|
||||
{
|
||||
"line": 40,
|
||||
"claim": "OpenCode hot-reloads command files, so the `/gsd-*` names registered immediately (confirmed via the `/api/command` endpoint — 88 flat `gsd-*` commands, zero `gsd/gsd-*` entries).",
|
||||
"note": "Filesystem-verifiable portion CONFIRMED: exactly 88 flat gsd-*.md files exist at ~/.config/opencode/commands/ and zero gsd/gsd-* entries remain. The hot-reload behavior itself is corroborated by the cited OpenCode V2 docs ('OpenCode reloads command files and configuration changes automatically'). The live /api/command enumeration was not re-queried."
|
||||
},
|
||||
{
|
||||
"line": 53,
|
||||
"claim": "Every GSD command/agent shells out to `gsd-sdk query ...`; when the npx cache is pruned, all of those calls die silently.",
|
||||
"note": "PARTIALLY VERIFIED. `gsd-sdk query` invocations are confirmed present in the installed command files (e.g. gsd-manager.md line 34, gsd-workstreams.md lines 39-70). The word 'every' is an overstatement — not all 88 commands invoke gsd-sdk. The 'die silently' failure mode is a behavioral/runtime claim, unverifiable from the filesystem."
|
||||
},
|
||||
{
|
||||
"line": 69,
|
||||
"claim": "That shim has since been removed and is no longer on the current PATH.",
|
||||
"note": "PARTIALLY VERIFIED / potentially misleading. No /mnt/c path segment exists in the current shell PATH and no /mnt/c entry is present in ~/.bashrc, ~/.profile, or ~/.zshrc — consistent with 'no longer on the current PATH'. However, the shim file itself still exists on disk at /mnt/c/Users/C-Fu/AppData/Roaming/npm/gsd-opencode (a POSIX shell script, 415 bytes, dated Jul 13). 'Removed' is accurate only in the PATH sense."
|
||||
},
|
||||
{
|
||||
"line": 83,
|
||||
"claim": "Agents / skills / rules / sdk files — untouched, integrity verified",
|
||||
"note": "PARTIALLY VERIFIED. The directories exist (~/.config/opencode/agents with 33 entries, skills with 12, rules present, sdk present with dist/docs) and `gsd-opencode check` reports all required directories OK with 755 non-command files verified. That 'untouched' implies a before/after diff, which the filesystem cannot supply. Note this row's 755 is not the same figure as line 31's 755/755 — see the line 31 failure."
|
||||
},
|
||||
{
|
||||
"line": 83,
|
||||
"claim": "gsd-sdk CLI — stable symlink to global npm install (`~/.nvm/.../bin/gsd-sdk`)",
|
||||
"note": "CONFIRMED via filesystem: ~/.local/bin/gsd-sdk -> ~/.nvm/versions/node/v24.18.0/bin/gsd-sdk -> ../lib/node_modules/gsd-opencode/bin/gsd-sdk.cjs (the resolved target is a global npm install, not an npx cache path). Functional behavior confirmed: `gsd-sdk query state.load` and `gsd-sdk --version` (v0.1.0) both succeed."
|
||||
}
|
||||
],
|
||||
"failures": [
|
||||
{
|
||||
"line": 31,
|
||||
"claim": "the installer's `gsd-opencode check` reported 755/755 files intact, which is exactly why the health check did not catch this",
|
||||
"expected": "`gsd-opencode check` reports 755/755 files intact in the pre-fix state",
|
||||
"actual": "No pre-fix state exists to inspect, but the checker's own output format and current run prove the total is 843, not 755: `gsd-opencode check` now prints '\u2713 755/843 files verified' followed by exactly 88 'File not found or unreadable' lines (one per flattened gsd-*.md). 755 is the PASSING subset and 843 the total. The claim that integrity was '755/755' is arithmetically impossible given 88 files were later reported missing from the same 843-file manifest, and the checker's success line is emitted as `${passedCount}/${totalChecked} files verified` (bin/dm/src/commands/check.js line 104). The intended point — that the health check did not flag the namespacing problem — remains correct; only the 755/755 figure is wrong."
|
||||
}
|
||||
],
|
||||
"passes_detail": {
|
||||
"line_4": "Package `gsd-opencode` v1.38.5 — CONFIRMED: ~/.nvm/versions/node/v24.18.0/lib/node_modules/gsd-opencode/package.json declares \"version\": \"1.38.5\"; `gsd-opencode --version` prints 1.38.5. Install scope '~/.config/opencode/' — CONFIRMED: the commands, agents, skills, rules, and sdk directories are all present there.",
|
||||
"line_14": "The v1.38.5 distribution manager installs the 88 GSD command files into a nested subdirectory — CONFIRMED: 88 files, and the installer's canonical layout is the nested path (bin/dm/lib/constants.js line 135 'New structure: commands/gsd/ (plural)'; structure-detector.js and install.js line 436 use 'commands/gsd').",
|
||||
"line_17": "`~/.config/opencode/commands/gsd/gsd-plan-phase.md` — CONFIRMED as the installer's expected path; correctly no longer exists on disk post-fix (flattening worked as documented).",
|
||||
"line_18": "`~/.config/opencode/commands/gsd/gsd-execute-phase.md` — CONFIRMED likewise; correctly no longer exists.",
|
||||
"line_23": "OpenCode V2 nested-path namespacing is documented at https://opencode.ai/v2/docs/commands/ — CONFIRMED by fetching the URL: 'Nested paths become command names with `/` separators ... Run the nested command as `/team/review`.' The cited URL is correct and states exactly the rule the doc relies on.",
|
||||
"line_25": "`commands/gsd/gsd-execute-phase.md` maps to `/gsd/gsd-execute-phase` — CONFIRMED by the same V2 docs rule.",
|
||||
"line_36": "`mv ~/.config/opencode/commands/gsd/*.md ~/.config/opencode/commands/` — consistent with observed end state: 88 gsd-*.md now sit flat in ~/.config/opencode/commands/.",
|
||||
"line_37": "`rmdir ~/.config/opencode/commands/gsd` — CONFIRMED: the directory no longer exists ('No such file or directory'); only the 88 flat .md files and the commands dir itself remain (total .md count in commands/ = 88).",
|
||||
"line_41": "88 flat gsd-* commands, zero gsd/gsd-* entries — CONFIRMED: `ls ~/.config/opencode/commands/gsd-*.md | wc -l` = 88; all 88 .md files in commands/ are gsd-*; zero nested gsd/ entries.",
|
||||
"line_46": "npx leaves 'global' binaries pointing into `~/.npm/_npx/*.*/node_modules/.bin/` — CONFIRMED: the path pattern exists with 12 cache dirs, including the exact dir cited at line 49 (2ada84fac427087c) which still contains node_modules/.bin/gsd-sdk -> ../gsd-opencode/bin/gsd-sdk.cjs.",
|
||||
"line_49": "`~/.local/bin/gsd-sdk -> ~/.npm/_npx/2ada84fac427087c/node_modules/.bin/gsd-sdk` (the fragile pre-fix state) — CONFIRMED as a historical path that genuinely existed and still exists in the npx cache; the symlink has since been re-pointed (line 59), which is exactly the documented fix.",
|
||||
"line_58": "`npm install -g gsd-opencode` — CONFIRMED: gsd-opencode is installed as a global npm package under the nvm node prefix (lib/node_modules/gsd-opencode) with gsd-opencode/gsd-sdk/gsd-install binaries in ~/.nvm/versions/node/v24.18.0/bin/.",
|
||||
"line_59": "`ln -sf ~/.nvm/versions/node/v24.18.0/bin/gsd-sdk ~/.local/bin/gsd-sdk` — CONFIRMED exactly: readlink shows ~/.local/bin/gsd-sdk -> /home/C-Fu/.nvm/versions/node/v24.18.0/bin/gsd-sdk, and that node version directory genuinely exists.",
|
||||
"line_62": "Verified with `gsd-sdk query state.load` (succeeds) and `gsd-sdk --version` — CONFIRMED by execution: state.load returns JSON config, and --version prints 'gsd-sdk v0.1.0'.",
|
||||
"line_66": "`which gsd-opencode` resolved to a Windows npm shim under `/mnt/c/Users/.../npm/` — CONFIRMED as existing: /mnt/c/Users/C-Fu/AppData/Roaming/npm/gsd-opencode (plus .cmd and .ps1 variants) are present as npm shim scripts.",
|
||||
"line_68": "Linux binaries under `~/.nvm/.../bin` now take precedence for `gsd-sdk` — CONFIRMED: the active ~/.local/bin/gsd-sdk symlink target is under ~/.nvm/versions/node/v24.18.0/bin/.",
|
||||
"line_71": "The installer's health checker still expects the old nested `commands/gsd/` layout — CONFIRMED: `gsd-opencode check` output lists each flattened file under its nested expected path (e.g. 'commands/gsd/gsd-add-backlog.md - File not found or unreadable'), exactly matching constants.js line 135 and structure-detector.js.",
|
||||
"line_74": "The package requires a full OpenCode restart after changing GSD model profiles (agent->model mappings come from opencode.jsonc and are read at startup) — PARTIALLY VERIFIED: ~/.config/opencode/opencode.jsonc exists (123 bytes, dated Oct 22, consistent with a recent profile edit), so the referenced file is real. The 'read at startup / requires restart' behavior is a runtime claim not verifiable from the filesystem; note the same docs page that confirms command hot-reload does state that command/config changes reload automatically, which is in tension with a blanket restart requirement for config changes — flagging as a soft risk.",
|
||||
"line_81": "88 registered flat at ~/.config/opencode/commands/ — CONFIRMED: 88 flat gsd-*.md files, zero nested entries.",
|
||||
"line_84": "`gsd-opencode check` reports false 'missing files' (stale checker) — CONFIRMED: current run reports exactly 88 'File not found or unreadable' lines, all of which are files that verifiably exist at ~/.config/opencode/commands/<name>.md. The 'false positive' characterization is correct."
|
||||
},
|
||||
"metadata": {
|
||||
"project_root": "/home/C-Fu/araharah",
|
||||
"doc_lines": 84,
|
||||
"verification_method": "filesystem only (ls/readlink/find/grep/read), plus read-only execution of `gsd-opencode check`, `gsd-opencode --version`, `gsd-sdk query state.load`, `gsd-sdk --version` to resolve dynamic counts. No project files modified.",
|
||||
"reverification": "fix iteration 2",
|
||||
"accounting_note": "claims_checked counts discrete PASS+FAIL claims only (24). The 'warnings' array holds 6 additional runtime/behavioral or overstatement notes attached to claims that otherwise PASSed on their filesystem-verifiable portions; they are advisory annotations, not extra claims, so claims_checked + warnings intentionally exceeds claims_checked."
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user