* fix(#2365): stop the api-coverage detector false-positiving non-API phases detectApiIntegration fired on any integration verb co-occurring anywhere on a line with any API noun, treated / as a word boundary (so a first-party Next.js src/app/api/... route path matched the noun "api"), and read any capitalized word before API/SDK/REST/GraphQL as a service name behind a fixed stopword denylist (so threat-model prose like "Resolver-only API" fired). Because the verify:pre seal gate is BLOCKING, a phase touching no external API could not reach UAT without fabricating a coverage matrix. The compound rule now requires the verb and noun to share one clause (sentence punctuation and table-cell walls end a clause) within a bounded word gap. Non-prose spans are excluded before matching: fenced code (already), inline code spans (new stripInlineCode in the markdown-sectionizer seam), and path-shaped tokens. The <Service> API surface rule requires proper-noun position — a clause-initial capitalized word is ordinary English and needs dependency evidence (URL / package reference) on the same line — and rejects compound modifiers ("Resolver-only", lowercase after the hyphen). A phase that integrates no external API now has a first-class, reasoned way to say so: a COVERAGE.md containing "No external API integration: <reason>" satisfies the gate (declaration + rows is contradictory and blocks). The true-positive path is pinned by regression tests: every default-vocabulary positive still fires, including the widest word-gap pairing and the surface-rule-only shape. Fixes #2365 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(#2365): tighten api-coverage detector per Codex review (round 2) Applies the Codex review findings on the initial #2365 fix: - S-1: a COVERAGE.md "no external API integration" declaration is the human override for a fallible detector, so it must PASS even when detection still fires — but the contradiction is now SURFACED in the gate output (overridden signal count + terms) instead of passing silently. - S-2: verb/noun pairing is now a term-group nearest-pair merge walk over precomputed word ordinals (computeWordStarts / minWordGap), not a match×match cross product — a hostile line repeating one pair thousands of times stays linear instead of going quadratic. - FN-4: package-shaped inline-code spans (`stripe-sdk`, `@stripe/stripe-js`) are kept as noun/dependency evidence rather than being fully masked, so a genuine dependency reference inside code ticks still corroborates. - C-1: the <Service> API surface rule now scans every candidate in every clause; a rejected first candidate no longer shadows a later genuine service. - Cross-clause binding: a verb may bind a noun in the immediately following clause only when its own clause names a service object, within a tight gap — admits "Integrate Stripe, exposing its endpoints …" without re-admitting the unrelated-clauses false-positive class. - Internal-descriptor negative evidence ("internal Payments API", "the internal endpoint") never pairs; URL/scheme matching generalized beyond http(s). All 5 acceptance criteria still hold: the three reported false positives are clean and "integrate the Stripe API" still fires. Built .cjs committed alongside the .cts. tsc + eslint (incl. no-adhoc-markdown-parsing) + lint:regression-names clean; affected suites 256/256 green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix(#2365): retune api-coverage detector fail-closed per Codex review (round 3) Codex's second-round review found the round-2 tightening had over-corrected into FAIL-OPEN false negatives — realistic external-API prose that the BLOCKING seal gate silently let through (the catastrophic class, since a missed API surface is worse than a dismissable false positive). Retuned the detector to be explicitly fail-closed: lean toward detecting, and let the one-line COVERAGE.md "no external API integration" declaration dismiss the residual false positives. Fail-open false negatives fixed (all now detect): - F1 clause-initial `<Service> API` with a plain follower ("Stripe API for payment processing") — dropped the follower-allowlist / corroboration gate on clause-initial surfaces; a service that is not a stopword, descriptor, or compound modifier is a real name from any clause position. - F2 scheme-less external host ("api.stripe.com/v1") — a dotted host with an alphabetic final label now contributes its API nouns; a first-party route path (no dotted host) still does not. - F3 vendor's first-party SDK ("Integrate Shopify's first-party SDK") — the compound path no longer filters nouns on "internal"/"first-party" (Codex: the qualifier can describe the vendor's own API, not the consuming project's). - F4 long single integration clause — removed the word-gap cap entirely: it could not separate a 21-word genuine clause from an 18-word internal one, so the clause boundary is now the whole relationship test. - F5 lowercase cross-clause service — cross-clause binding no longer requires a capitalized "service object". New false positives fixed (all now clean): - F6 a URL token that swallowed a trailing clause comma, merging two clauses — trailing clause punctuation is kept literal so the split survives. - F7 a capitalized internal component authorizing cross-clause binding — the new gate requires a dependent elaboration, not a new coordinate clause opened by a conjunction ("…, then document…"). - F8 a protocol name read as a service ("REST API", "GraphQL API") — protocol and locality descriptors are rejected in the `<Service>` position. - Finding 9: the inline-code-span scanner was O(n^2) on pathological backtick runs; rewritten to linear via a per-length run cursor (2 MB: 4.15 s -> ~6 ms), semantics preserved (148 sectionizer tests unchanged). Net simplification: the fail-closed model removed the round-2 minWordGap / groupByTerm / follower / corroboration machinery (350 insertions vs 445 deletions across the touched files). Under fail-closed, three round-2 negative tests now correctly detect (integration verb + "internal"-qualified noun, and the distant-same-clause case); none were trek-e acceptance FPs. Verified: 1491/1491 unit tests pass; tsc + eslint (incl. no-adhoc-markdown- parsing) + lint:regression-names clean; all 8 review findings reproduced as regression tests, both directions. Built .cjs committed alongside the .cts. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix(#2365): resolve round-3 Codex review findings (fail-closed, round 4) Codex's round-3 adversarial review found the fail-closed retune had introduced new holes in both directions. Resolved: Fail-open false negatives (now detect): - External host addressing a PATH ("graph.microsoft.com/v1.0/me") is itself an integration surface and contributes an endpoint noun even when the host names no vocabulary word. A bare domain link with no path ("https://example.com") stays a non-signal, so "Integrate … from example.com, document …" is still clean. - Locality qualification ("internal", "private") no longer leaks across a sentence or clause boundary: only plain spaces may separate the descriptor from the service, so "The cache is private. Stripe API …" now detects. - Cross-clause binding: the fragile head-word cap (which could not tell a genuine "Connect … to Stripe payments, exposing its endpoints" from an unrelated "Integrate … from URL, document …" — both 4 words after the verb) is replaced by a participial-continuation rule: a verb binds a noun in the next clause only when that clause begins with an "-ing" elaboration. This fixes the 4-word-head false negative AND the false positive below at once. False positives (now clean): - Cross-clause no longer binds a finite continuation regardless of separator: "Wire the settings form. Document endpoint props." / "…; document …" / "…, document …" are separate actions, not elaborations. Perf (quadratic → linear): - The trailing-punctuation peel is a backward char scan instead of an unanchored `[…]+$` regex (16k chars: 156 ms → ~1 ms). - SERVICE_SURFACE_API_RE bounds the service-name length {1,40} so a hostile "A-A-…-x" run cannot drive O(n^2) backtracking (16k: 385 ms → ~3 ms). Consumer fail-open (blocking gate): - readPhaseScope now distinguishes "no plans" from a plan that EXISTS but is unreadable. On a read error the gate BLOCKS ("could not read the phase scope …") instead of silently certifying no-integration from partial scope — an unreadable plan could be the one describing the integration. Documented fail-closed tradeoffs, now pinned with tests so they are not "fixed" back into a fail-open: a clause-initial capitalized common word before "API" ("Payment API", "Search API") reads as a service name; a long clause pairs a verb with a distant noun; and a CommonMark inline code span that wraps a newline is matched within-line only. Codex judged these acceptable because the COVERAGE.md declaration is a cheap override. One documented limitation remains out of scope: "Integrate Stripe, and authenticate requests with its API" (a coordinate finite clause whose noun refers back by pronoun) needs coreference resolution, beyond a lexical detector. Verified: 379/379 affected + command-router tests pass (+14 new regression tests covering every round-3 finding, both directions); tsc + eslint (no-adhoc-markdown-parsing) + lint:regression-names clean. Built .cjs committed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix(#2365): simplify to robust core — remove whack-a-mole heuristics (round 5) Round-4 review confirmed the detector's two most complex features generate findings in both directions no matter how they are tuned, because they need a vendor dictionary + coreference the issue rules out in principle. Per the operator's "ship the robust core" decision, both are removed and their gaps are documented rather than chased further: - Cross-clause binding DELETED (allowsCrossClause / participle rule). It caused a fail-open on finite continuations ("Integrate Stripe; use its OAuth endpoints" — missed) and a false positive on "-ing"-SPELLED nouns ("…, billing endpoint terminology…" — wrongly fired). Detection is now same-clause only. - URL-path-as-evidence REVERTED. Treating every path-bearing URL as an endpoint fired on ordinary asset/link URLs ("…/theme.css", "…?next=/x", a docs/repo link) and recreated routine UI-phase false positives. An external URL is evidence only when it NAMES an API vocabulary word ("api.stripe.com/v1"). Two fail-open cases are now DOCUMENTED limitations, pinned by tests so a future maintainer does not re-add the heuristics that caused the false positives above: a service named only in a clause separate from its API noun, and a bare external host that names no vocabulary word. Both are cheaply covered by the COVERAGE.md declaration and rare in real phase prose ("integrate the X API"). Also fixed from the round-4 review: - Qualification now survives markdown emphasis ("The **internal** Payments API" stays clean) while still not crossing a sentence/clause boundary. - readPhaseScope fail-closes on a REAL read failure (EACCES/EIO) enumerating the phase directory or reading the roadmap fallback — not only per-plan-file failures; a missing directory/section remains a legitimate no-op. The declaration-override path surfaces scope_read_error so an incomplete-scope override stays visible. - SERVICE_SURFACE_API_RE length-bound comment no longer overclaims. Net: the detector is same-clause verb+noun + `<Service> API` surface, with path/code/inline masking and a fail-closed posture. All five acceptance criteria hold. 1573/1573 unit tests pass; tsc + eslint (no-adhoc-markdown-parsing) + lint:regression-names clean. Built .cjs committed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix(#2365): close roadmap-fallback fail-open + stale JSDoc (round-5 review) The round-5 sanity review confirmed the detector simplification is sound (all acceptance positives fire, all required negatives clean) and flagged one real blocker plus a nit: - Blocker: readPhaseScope's roadmap fallback could still silently pass an UNREADABLE roadmap. getRoadmapPhaseWithFallback gated on fs.existsSync(), which returns false on EACCES/EIO too — so an unreadable ROADMAP.md read as "absent", no exception reached isRealReadFailure, and the blocking gate certified empty scope. Fixed at the source: read the roadmap directly and honor the function's OWN documented contract — null only on ENOENT (genuinely absent), otherwise throw. Both existing callers already wrap it in try/catch expecting that throw, and readPhaseScope now fail-closes (blocks) via its roadmap catch. Verified by a new e2e test (unreadable roadmap fallback → block). - Nit: the detectApiIntegration JSDoc still described the removed cross-clause participial binding and "every external hostname counts" — corrected to the actual same-clause-only behavior and the names-a-vocab-word URL rule. Verified: full unit suite green; tsc + eslint + lint:regression-names clean. Built .cjs committed (roadmap.cjs is gitignored/rebuilt, per repo convention). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * chore(#2365): backfill changeset PR number (#2397) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * chore(#2365): sync generated capability-registry + recapture install goldens CI surfaced two generated-artifact staleness issues (all failing test shards + lint-tests traced to these, not to a logic defect): - gsd-core/bin/lib/capability-registry.cjs was stale: the initial fix edited the ai-integration `api-coverage-plan-pre.md` fragment (added the "No external API integration" declaration section) but did not regenerate the registry, which embeds an inline copy of that fragment. Regenerated via `gen-capability-registry.cjs --write` — the diff is exactly the fragment text sync. Fixes `lint:generated-sync` and the "committed registry is in sync" + "registry integration" tests. - The 18 golden-install-parity fixtures were stale by exactly one hash line each — `gsd-core/references/api-coverage.md`, which this PR edits and which is a hashed installed artifact. Recaptured with `UPDATE_GOLDEN=1`; the diff is that single hash per runtime and nothing else. Fixes the `golden parity — *` tests. No source or behavior change — generated artifacts only. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * test(#2365): flip representative-corpus manifest to assert the fixed behavior The #2371 representative corpus (merged into next after this branch was cut) is a known-bug tripwire: it asserts each fixture's currentBuggyOutput so the test fails loudly the moment #2365 is fixed, at which point — per its own contract in representative-corpus.test.cjs — the fixer removes currentBuggyOutput so the assertion checks expectedDetected instead. This is that moment. Removed currentBuggyOutput from the three detector fixtures (nextjs-route-path, unrelated-verb-noun, threat-model-prose); the corpus now asserts detected:false, which the fail-closed same-clause detector satisfies. Notes updated to describe the fix rather than the bug. The #2366 matrix corpus is left untouched — that tripwire belongs to its own PR (#2374). Corpus test: 7/7 pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * test(#2365): skip chmod-000 fail-closed e2e tests on Windows The three fail-closed gate tests induce an unreadable plan / directory / roadmap with chmod 000, but Windows does not enforce POSIX mode bits — readFileSync still succeeds, so the gate never reaches the read-error path and the assertion fails on the windows-latest CI leg. The fail-closed LOGIC is platform- independent (readError → block) and is fully exercised on the macOS/Linux legs; only the method of inducing EACCES is POSIX-specific. Guard the three tests to skip on win32 as well as root, mirroring golden-install-parity's win32 skip. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * test(#2365): address trek-e review — glossary, clock-seam, IO injection, bounds Review response to PR #2397 (trek-e, CHANGES_REQUESTED). Fix logic unchanged; this closes the test/process-hygiene findings. Major: - CONTEXT.md "Markdown Sectionizer" glossary now lists the two exports this fix relies on, `stripInlineCode` and `scanInlineCodeSpans` (glossary is a PR gate). - Replaced the banned wall-clock assertion in the "hostile repeated-term line" test (Clock Seams rule — no elapsed-time asserts) with a deterministic signal-count assertion, which also directly verifies the term-dedup that keeps pairing linear (one signal for a 10k-pair line, not thousands). - Rewrote the three fail-closed read-failure tests: instead of chmod 0o000 (a no-op under root / on Windows, the pattern the repo's IO-failure convention avoids) they now exercise the newly-exported `readPhaseScope` in-process and inject the failure by monkeypatching fs.readFileSync/readdirSync to throw, restoring in finally. Deterministic and platform-independent (no skip needed), and they add the ENOENT-is-absence case that the chmod tests couldn't express. Minor: - Added limit / limit+1 boundary tests for SERVICE_SURFACE_API_RE's {1,40} service-name bound, QUALIFIER_LOOKBACK's 24-char window, and REASON_MAX_LEN (200) on the declaration reason. - Added a fast-check property that fuzzes the tokenizer / clause splitter / masking (scanLineTokens, splitClauses, collectTermMatches) with adversarial tokens (slashes, backticks, URLs, clause punctuation) and asserts the detector is total (never throws), shape-stable, holds detected <=> signals, and is deterministic. readPhaseScope is exported for the in-process tests. Verified: 125 detector + 19 gate tests pass; tsc + eslint + generated-sync (glossary/registry) + lint-regression-test-names + lint-test-file-count clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
508 lines
30 KiB
JSON
508 lines
30 KiB
JSON
{
|
|
".gsd-profile": "0e716a5fef4e6dc1",
|
|
".gsd/defaults.json": "560664b045e645cb",
|
|
"agents/gsd-advisor-researcher.md": "e5be2680b690c198",
|
|
"agents/gsd-ai-researcher.md": "93ca6e24f4fd3681",
|
|
"agents/gsd-assumptions-analyzer.md": "b3219da6b194fdef",
|
|
"agents/gsd-code-fixer.md": "1cf3a9fdade9a470",
|
|
"agents/gsd-code-reviewer.md": "5342fcc0da974696",
|
|
"agents/gsd-codebase-mapper.md": "b995bf01af0193d2",
|
|
"agents/gsd-debug-session-manager.md": "8a495718576f24e6",
|
|
"agents/gsd-debugger.md": "e454548710419254",
|
|
"agents/gsd-doc-classifier.md": "c2bf59af9467810b",
|
|
"agents/gsd-doc-synthesizer.md": "b2a179bf3c9bd636",
|
|
"agents/gsd-doc-verifier.md": "e74d930905a782ea",
|
|
"agents/gsd-doc-writer.md": "ed5678dd38c83716",
|
|
"agents/gsd-domain-researcher.md": "1c1a800108a2b225",
|
|
"agents/gsd-eval-auditor.md": "99012004b14ea602",
|
|
"agents/gsd-eval-planner.md": "4ebdd7fe9cbb0cfe",
|
|
"agents/gsd-executor.md": "44149e405a126f90",
|
|
"agents/gsd-framework-selector.md": "7726fccc86bfeb50",
|
|
"agents/gsd-integration-checker.md": "2d8339790bbb2dc3",
|
|
"agents/gsd-intel-updater.md": "c51339956197cbd3",
|
|
"agents/gsd-mempalace-curator.md": "78f4894a9d5f44b1",
|
|
"agents/gsd-nyquist-auditor.md": "42676eea063d2ec5",
|
|
"agents/gsd-pattern-mapper.md": "92cfa2e6c2a06bf3",
|
|
"agents/gsd-phase-researcher.md": "6338474da1a5d65e",
|
|
"agents/gsd-plan-checker.md": "e704c083b02e8c35",
|
|
"agents/gsd-planner.md": "8e3e314f962711cd",
|
|
"agents/gsd-project-researcher.md": "e43c59f7f1f2f37a",
|
|
"agents/gsd-research-synthesizer.md": "87955470c3c129b2",
|
|
"agents/gsd-roadmapper.md": "20b69eff61a7a9fa",
|
|
"agents/gsd-security-auditor.md": "bcd9c4859eb5b448",
|
|
"agents/gsd-ui-auditor.md": "a26bbc733817959b",
|
|
"agents/gsd-ui-checker.md": "25822359044cd708",
|
|
"agents/gsd-ui-researcher.md": "e37d9f53ade25d1f",
|
|
"agents/gsd-user-profiler.md": "622220df0654b6bf",
|
|
"agents/gsd-verifier.md": "107ad9d3193bcafc",
|
|
"commands/gsd-add-tests.md": "aa65032141557fb7",
|
|
"commands/gsd-ai-integration-phase.md": "6199b7198f928adc",
|
|
"commands/gsd-audit-fix.md": "c21ef925131fade7",
|
|
"commands/gsd-audit-milestone.md": "accbb975f85df506",
|
|
"commands/gsd-audit-uat.md": "f34f9d211780c8e7",
|
|
"commands/gsd-autonomous.md": "b2ddf4f71008055a",
|
|
"commands/gsd-capture.md": "73066649385d6a30",
|
|
"commands/gsd-cleanup.md": "15c306114555468e",
|
|
"commands/gsd-code-review.md": "fb1fee97d4ce7aa7",
|
|
"commands/gsd-complete-milestone.md": "42b9f738a6ef27bb",
|
|
"commands/gsd-config.md": "d2ca72138eb3e185",
|
|
"commands/gsd-debug.md": "279b3814e35e57e1",
|
|
"commands/gsd-discuss-phase.md": "b0e66df97b3d35b4",
|
|
"commands/gsd-docs-update.md": "0bd04559e7daaf8f",
|
|
"commands/gsd-eval-review.md": "5c0bf98aee70535f",
|
|
"commands/gsd-execute-phase.md": "4c2e81399876492a",
|
|
"commands/gsd-explore.md": "8a59d0d0ea3daebd",
|
|
"commands/gsd-extract-learnings.md": "727feb914d501f1a",
|
|
"commands/gsd-fast.md": "79bf42c66008a6db",
|
|
"commands/gsd-forensics.md": "f068866c568749a4",
|
|
"commands/gsd-graphify.md": "5e0efaed49aa8384",
|
|
"commands/gsd-health.md": "60c111036afc00d2",
|
|
"commands/gsd-help.md": "1a617e1b8e383b73",
|
|
"commands/gsd-import.md": "00e560b7e4b85523",
|
|
"commands/gsd-inbox.md": "eecfcfff57f89975",
|
|
"commands/gsd-ingest-docs.md": "ab3e58239c23d61d",
|
|
"commands/gsd-manager.md": "bfe9e261fa918876",
|
|
"commands/gsd-map-codebase.md": "5093093d42240325",
|
|
"commands/gsd-mempalace-capture.md": "c687b6d88b50f45c",
|
|
"commands/gsd-mempalace-recall.md": "6efef238d8c62569",
|
|
"commands/gsd-milestone-summary.md": "e3a36fbd695a1833",
|
|
"commands/gsd-mvp-phase.md": "671791ba61c4654a",
|
|
"commands/gsd-new-milestone.md": "288fa7dfcec18094",
|
|
"commands/gsd-new-project.md": "490195d5003d3d17",
|
|
"commands/gsd-next.md": "dbec71acc9d5d2a2",
|
|
"commands/gsd-ns-context.md": "cc8954f405ae7916",
|
|
"commands/gsd-ns-ideate.md": "fd1dd80d705e6e36",
|
|
"commands/gsd-ns-manage.md": "5cc012d0be1caabb",
|
|
"commands/gsd-ns-project.md": "76672fae61723e55",
|
|
"commands/gsd-ns-review.md": "a28dbfd4aba5f74b",
|
|
"commands/gsd-ns-workflow.md": "a1b874be9cf16caf",
|
|
"commands/gsd-onboard.md": "63283b90aa671229",
|
|
"commands/gsd-pause-work.md": "6caa75a7c2b4dd2d",
|
|
"commands/gsd-phase.md": "e3ca4958ea20a935",
|
|
"commands/gsd-plan-phase.md": "ad988a271bf20e9c",
|
|
"commands/gsd-plan-review-convergence.md": "3d8837015534969f",
|
|
"commands/gsd-pr-branch.md": "f5be514b9f69eaf5",
|
|
"commands/gsd-profile-user.md": "7a9289910719d828",
|
|
"commands/gsd-progress.md": "80f75f428fc0949d",
|
|
"commands/gsd-quick.md": "8585535a111660d1",
|
|
"commands/gsd-resume-work.md": "9c4ee571a15fefae",
|
|
"commands/gsd-review-backlog.md": "41ee0337839b8e9d",
|
|
"commands/gsd-review.md": "763f91f5f823fa3a",
|
|
"commands/gsd-secure-phase.md": "6daf0c899069ab74",
|
|
"commands/gsd-settings.md": "57edae813aae049c",
|
|
"commands/gsd-ship.md": "9190bbab8119a365",
|
|
"commands/gsd-sketch.md": "4013cb35a4a800be",
|
|
"commands/gsd-spec-phase.md": "145f2ab750344022",
|
|
"commands/gsd-spike.md": "54c094f40b601688",
|
|
"commands/gsd-stats.md": "60f7077e7949d2ad",
|
|
"commands/gsd-surface.md": "84d89b840d00b7f0",
|
|
"commands/gsd-thread.md": "07da4f657b3efcc1",
|
|
"commands/gsd-ui-phase.md": "3b90f3d1c8fa531d",
|
|
"commands/gsd-ui-review.md": "4e5fb1e77def9b64",
|
|
"commands/gsd-ultraplan-phase.md": "728a2e57e10e6179",
|
|
"commands/gsd-undo.md": "a52c89b888e6c1b7",
|
|
"commands/gsd-update.md": "58bc4232c21a74ba",
|
|
"commands/gsd-validate-phase.md": "a735abb7db023543",
|
|
"commands/gsd-verify-work.md": "6edbbb82a1f2aea7",
|
|
"commands/gsd-workspace.md": "d765ff60cde657a6",
|
|
"commands/gsd-workstreams.md": "884b6c8d648422c7",
|
|
"gsd-core/.gsd-runtime": "04e9f0f6433d6d58",
|
|
"gsd-core/VERSION": "ef0deccd81a6723c",
|
|
"gsd-core/bin/check-latest-version.cjs": "e4a224058c8f4d74",
|
|
"gsd-core/bin/ensure-runtime-build.cjs": "51bc64467ab30f62",
|
|
"gsd-core/bin/gsd-tools.cjs": "acf82db0f1b06ae8",
|
|
"gsd-core/bin/gsd_run": "62d9b647ede212e6",
|
|
"gsd-core/bin/shared/config-defaults.manifest.json": "517e6a7c1e9f4f16",
|
|
"gsd-core/bin/shared/config-schema.manifest.json": "0109a5a9866a24e0",
|
|
"gsd-core/bin/shared/model-catalog.json": "b55176ca044728d3",
|
|
"gsd-core/bin/shared/runtime-aliases.manifest.json": "2df2c5ac1957911a",
|
|
"gsd-core/bin/verify-reapply-patches.cjs": "caec5dbce11e3904",
|
|
"gsd-core/contexts/dev.md": "dcb0de9dce33cf41",
|
|
"gsd-core/contexts/research.md": "b3285d8e7209cc3b",
|
|
"gsd-core/contexts/review.md": "dc578fdd74bbea11",
|
|
"gsd-core/references/agent-contracts.md": "ff65e633c656c0d2",
|
|
"gsd-core/references/agent-skills-bootstrap.md": "5ab875054b1adda9",
|
|
"gsd-core/references/ai-evals.md": "b5afa786b938671e",
|
|
"gsd-core/references/ai-frameworks.md": "f827de93dde124eb",
|
|
"gsd-core/references/api-coverage.md": "913654a1cdb3baf1",
|
|
"gsd-core/references/artifact-types.md": "a6d2e1f9453ffbf5",
|
|
"gsd-core/references/autonomous-smart-discuss.md": "2fc710cde0ec7785",
|
|
"gsd-core/references/checkpoints.md": "c2fe89c42ca88349",
|
|
"gsd-core/references/common-bug-patterns.md": "a4cfea8954dede29",
|
|
"gsd-core/references/context-budget.md": "f1ce57bf418824af",
|
|
"gsd-core/references/continuation-format.md": "ce73e57d053ab8a7",
|
|
"gsd-core/references/debugger-bug-taxonomy.md": "78fb8c1711acc971",
|
|
"gsd-core/references/debugger-fix-acceptance.md": "5616622f33e00436",
|
|
"gsd-core/references/debugger-philosophy.md": "16f0cb55eb457f33",
|
|
"gsd-core/references/debugger-prevention.md": "74b6c5556a428efd",
|
|
"gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250",
|
|
"gsd-core/references/debugger-repro-hardening.md": "fdf55a6cee9b1792",
|
|
"gsd-core/references/debugger-sbfl.md": "a7d0cd5940d6d2cd",
|
|
"gsd-core/references/debugger-semantic-recall.md": "4add324d495cb25c",
|
|
"gsd-core/references/decimal-phase-calculation.md": "46b5ba045852c474",
|
|
"gsd-core/references/doc-conflict-engine.md": "67d019d23e17f934",
|
|
"gsd-core/references/domain-probes.md": "62d23ed1992c48a9",
|
|
"gsd-core/references/edge-probe-fixtures/01-round-half-even/expected-coverage.json": "72d1e29cedc854ec",
|
|
"gsd-core/references/edge-probe-fixtures/01-round-half-even/requirements.json": "fbc1b355d8625eeb",
|
|
"gsd-core/references/edge-probe-fixtures/02-merge-intervals/expected-coverage.json": "fad67dcc8294f6da",
|
|
"gsd-core/references/edge-probe-fixtures/02-merge-intervals/requirements.json": "30a78ee9ce3473ea",
|
|
"gsd-core/references/edge-probe-fixtures/03-truncate-graphemes/expected-coverage.json": "66dd60957fee45f0",
|
|
"gsd-core/references/edge-probe-fixtures/03-truncate-graphemes/requirements.json": "47fca61f076835fa",
|
|
"gsd-core/references/edge-probe-fixtures/04-money-rounding/expected-coverage.json": "72d1e29cedc854ec",
|
|
"gsd-core/references/edge-probe-fixtures/04-money-rounding/requirements.json": "80f04f5c04fb24cf",
|
|
"gsd-core/references/edge-probe-fixtures/05-list-dedupe/expected-coverage.json": "fad67dcc8294f6da",
|
|
"gsd-core/references/edge-probe-fixtures/05-list-dedupe/requirements.json": "d38147adb0e5b342",
|
|
"gsd-core/references/edge-probe-fixtures/06-resolved-mixed/expected-coverage.json": "bc552c01939bf4f8",
|
|
"gsd-core/references/edge-probe-fixtures/06-resolved-mixed/requirements.json": "30a78ee9ce3473ea",
|
|
"gsd-core/references/edge-probe-fixtures/06-resolved-mixed/resolutions.json": "688ec62c13e08afe",
|
|
"gsd-core/references/edge-probe.md": "5687eba25a078561",
|
|
"gsd-core/references/execute-mvp-tdd.md": "a98a270a7ab126bc",
|
|
"gsd-core/references/execute-phase-between-wave-reset.md": "3ad96ca0f7fee37e",
|
|
"gsd-core/references/execute-phase-context-guard.md": "982006c1f3364242",
|
|
"gsd-core/references/execute-phase-requirement-revert.md": "48ade76866c57ce2",
|
|
"gsd-core/references/execute-phase-wave-guard.md": "de9ac22cead4cfd8",
|
|
"gsd-core/references/executor-examples.md": "ba59243ed45c8ab1",
|
|
"gsd-core/references/few-shot-examples/plan-checker.md": "2574808188ac9de4",
|
|
"gsd-core/references/few-shot-examples/verifier.md": "5badee4560b14ae8",
|
|
"gsd-core/references/gate-prompts.md": "e69f5993ab944d80",
|
|
"gsd-core/references/gates.md": "bd79c7f90c8cb8d7",
|
|
"gsd-core/references/git-integration.md": "77bf9dff38b2c9d4",
|
|
"gsd-core/references/git-planning-commit.md": "f897a15ebfc3f5a7",
|
|
"gsd-core/references/gsd-run-resolver.md": "e71eb728b84641b1",
|
|
"gsd-core/references/honest-verifier.md": "8815c9fc18c35719",
|
|
"gsd-core/references/ios-scaffold.md": "5ef0cb7e0fac891f",
|
|
"gsd-core/references/loop-hook-dispatch.md": "32e5dfb4dba76987",
|
|
"gsd-core/references/mandatory-initial-read.md": "fe59abce693717cf",
|
|
"gsd-core/references/model-profile-resolution.md": "f32bb05102839767",
|
|
"gsd-core/references/model-profiles.md": "e067ad3df6770db1",
|
|
"gsd-core/references/mvp-concepts.md": "72f7e8b1f8ae7118",
|
|
"gsd-core/references/phase-argument-parsing.md": "e5bbb985f3bc3e34",
|
|
"gsd-core/references/planner-antipatterns.md": "7ed54ec1e2cc54ac",
|
|
"gsd-core/references/planner-chunked.md": "79fe674221e738e6",
|
|
"gsd-core/references/planner-gap-closure.md": "76bee257911413e7",
|
|
"gsd-core/references/planner-graphify-auto-update.md": "6aeffd9097e25e22",
|
|
"gsd-core/references/planner-guidance.md": "96486cac2f7885e6",
|
|
"gsd-core/references/planner-human-verify-mode.md": "56d05e841630b3f4",
|
|
"gsd-core/references/planner-interface-context.md": "b28fa3da6ae739a8",
|
|
"gsd-core/references/planner-load-graph-context.md": "ca7a7af3f35ae61b",
|
|
"gsd-core/references/planner-mvp-mode.md": "cfd535c9c545e73e",
|
|
"gsd-core/references/planner-preconditions.md": "4511829607ec9107",
|
|
"gsd-core/references/planner-reviews.md": "dda0193a0fbd4947",
|
|
"gsd-core/references/planner-revision.md": "86ba8a511f081f05",
|
|
"gsd-core/references/planner-source-audit.md": "7de5bdb07232ce0b",
|
|
"gsd-core/references/planning-config.md": "ac409835e8260a3e",
|
|
"gsd-core/references/prohibition-probe-fixtures/01-streak-reminder/expected.json": "f10df472f2846cc6",
|
|
"gsd-core/references/prohibition-probe-fixtures/02-clean-utility/expected.json": "31e8a781eeffe020",
|
|
"gsd-core/references/prohibition-probe-fixtures/03-multi-prohibition/expected.json": "70a532a7cc1b6ae8",
|
|
"gsd-core/references/prohibition-probe.md": "605dc3f5a118ff3b",
|
|
"gsd-core/references/project-skills-discovery.md": "c155e03dce8dc3c2",
|
|
"gsd-core/references/questioning.md": "a8c988cab05f4651",
|
|
"gsd-core/references/research-documentation-lookup.md": "c070007d1d72ab71",
|
|
"gsd-core/references/research-philosophy.md": "62930e66cc979c1a",
|
|
"gsd-core/references/research-verification-protocol.md": "9c38c9d9a687e679",
|
|
"gsd-core/references/reviewer-instances.md": "ae64e44f2f132bc2",
|
|
"gsd-core/references/revision-loop.md": "e55ff32dd98c63df",
|
|
"gsd-core/references/scout-codebase.md": "ba266ecc18fbf172",
|
|
"gsd-core/references/security-asvs-levels.md": "4774fac3b94b6ca8",
|
|
"gsd-core/references/skeleton-template.md": "f11e9cd2948bd33c",
|
|
"gsd-core/references/sketch-interactivity.md": "7d982fe877e1e1cc",
|
|
"gsd-core/references/sketch-theme-system.md": "33e2e96e450456f8",
|
|
"gsd-core/references/sketch-tooling.md": "df6c4f24c1c27611",
|
|
"gsd-core/references/sketch-variant-patterns.md": "66c197aa4fb52810",
|
|
"gsd-core/references/specless-probe-fallback.md": "5e400dc05a15e972",
|
|
"gsd-core/references/spidr-splitting.md": "074ac154c0e4f906",
|
|
"gsd-core/references/tdd.md": "e4708ede157478b6",
|
|
"gsd-core/references/thinking-models-debug.md": "2da61022b16c4e7c",
|
|
"gsd-core/references/thinking-models-execution.md": "dcc650a8b5f3e049",
|
|
"gsd-core/references/thinking-models-planning.md": "7e19462313fa028f",
|
|
"gsd-core/references/thinking-models-research.md": "5f6bf3f3b889c6e4",
|
|
"gsd-core/references/thinking-models-verification.md": "a71a933d51ca3d8d",
|
|
"gsd-core/references/thinking-partner.md": "41069529ef776e39",
|
|
"gsd-core/references/ui-brand.md": "48717bcfcd63bd27",
|
|
"gsd-core/references/ui-consideration-probe.md": "7e019dfaae47f4c4",
|
|
"gsd-core/references/universal-anti-patterns.md": "6a1245050b21df01",
|
|
"gsd-core/references/untrusted-input-boundary.md": "d33b80d4d348599a",
|
|
"gsd-core/references/user-profiling.md": "b50416fe57c1b321",
|
|
"gsd-core/references/user-story-template.md": "0cc50e06a144ff8a",
|
|
"gsd-core/references/verification-overrides.md": "8213de9bd62283b6",
|
|
"gsd-core/references/verification-patterns.md": "72f4d4814fdae9a8",
|
|
"gsd-core/references/verify-mvp-mode.md": "534bdc7f2432903a",
|
|
"gsd-core/references/workstream-flag.md": "ca99ca79e716f0f5",
|
|
"gsd-core/references/worktree-branch-check.md": "21d9c31bf6542b93",
|
|
"gsd-core/references/worktree-path-safety.md": "3c8d74756f9b16a8",
|
|
"gsd-core/templates/AI-SPEC.md": "efa1f8354bd3a24b",
|
|
"gsd-core/templates/DEBUG.md": "c8768312f4c1e438",
|
|
"gsd-core/templates/README.md": "93d3426fc64e2c12",
|
|
"gsd-core/templates/SECURITY.md": "b628f7f1c6d2328f",
|
|
"gsd-core/templates/UAT.md": "9e296471b97ebcec",
|
|
"gsd-core/templates/UI-SPEC.md": "7dd5c7cdc7ece0ec",
|
|
"gsd-core/templates/VALIDATION.md": "6f0fe4214dff6dd1",
|
|
"gsd-core/templates/claude-md.md": "d1d333e4b963c0d2",
|
|
"gsd-core/templates/codebase/architecture.md": "6be88214162fdd89",
|
|
"gsd-core/templates/codebase/concerns.md": "efa26d1fb5132f25",
|
|
"gsd-core/templates/codebase/conventions.md": "c2e07698dad6b364",
|
|
"gsd-core/templates/codebase/integrations.md": "39bd23c71eedd564",
|
|
"gsd-core/templates/codebase/stack.md": "116e7e67dd87ddec",
|
|
"gsd-core/templates/codebase/structure.md": "222997133232a6f5",
|
|
"gsd-core/templates/codebase/testing.md": "76abff7f2050c9ea",
|
|
"gsd-core/templates/config.json": "a4b783ef759a0f37",
|
|
"gsd-core/templates/context.md": "69b01e7909ea3f66",
|
|
"gsd-core/templates/continue-here.md": "f522a51b6895fba8",
|
|
"gsd-core/templates/copilot-instructions.md": "aea34bc52ff548ea",
|
|
"gsd-core/templates/debug-subagent-prompt.md": "920656683dedb869",
|
|
"gsd-core/templates/dev-preferences.md": "88d0a65ec0993a3a",
|
|
"gsd-core/templates/discovery.md": "9a0e0935cc825dbc",
|
|
"gsd-core/templates/discussion-log.md": "cac1b48ec0f4dcb8",
|
|
"gsd-core/templates/milestone-archive.md": "591b6decdc0c0e51",
|
|
"gsd-core/templates/milestone.md": "74d2f750ae9f4a9c",
|
|
"gsd-core/templates/phase-prompt.md": "b811bf951092df2f",
|
|
"gsd-core/templates/planner-subagent-prompt.md": "ebf29dbb27042370",
|
|
"gsd-core/templates/project.md": "4f311fb1b05b823b",
|
|
"gsd-core/templates/requirements.md": "a44de4c2f146e473",
|
|
"gsd-core/templates/research-project/ARCHITECTURE.md": "746b9ef791d758b0",
|
|
"gsd-core/templates/research-project/FEATURES.md": "f2b800de5df91b0f",
|
|
"gsd-core/templates/research-project/PITFALLS.md": "3ef75fa768422eec",
|
|
"gsd-core/templates/research-project/STACK.md": "82c85799ac4dd344",
|
|
"gsd-core/templates/research-project/SUMMARY.md": "dceb2f346388839d",
|
|
"gsd-core/templates/research.md": "88ce0920417091d0",
|
|
"gsd-core/templates/retrospective.md": "03981e30dd760103",
|
|
"gsd-core/templates/roadmap.md": "e4e35a9eb5dd4d4f",
|
|
"gsd-core/templates/spec.md": "26d55bce940f0288",
|
|
"gsd-core/templates/state.md": "4d123aa6cea167fe",
|
|
"gsd-core/templates/summary-complex.md": "a5e40574fd8894dc",
|
|
"gsd-core/templates/summary-minimal.md": "7d09b5e709e2e67c",
|
|
"gsd-core/templates/summary-standard.md": "e8d9cf4a8377cdff",
|
|
"gsd-core/templates/summary.md": "23c40f6503b3ea98",
|
|
"gsd-core/templates/user-profile.md": "20749f23e4c413fc",
|
|
"gsd-core/templates/user-setup.md": "78b7d718b6e8d67c",
|
|
"gsd-core/templates/verification-report.md": "dd5faa6254183731",
|
|
"gsd-core/workflows/_runtime-launcher.snippet.sh": "bf2dd5d1debd5335",
|
|
"gsd-core/workflows/add-backlog.md": "1bc7377b105194fc",
|
|
"gsd-core/workflows/add-phase.md": "ac43883e2d8e34d8",
|
|
"gsd-core/workflows/add-tests.md": "24b0d8157a9ccb8b",
|
|
"gsd-core/workflows/add-todo.md": "953314cdfef56bc4",
|
|
"gsd-core/workflows/ai-integration-phase.md": "45c727e49de71636",
|
|
"gsd-core/workflows/analyze-dependencies.md": "52942af10f140717",
|
|
"gsd-core/workflows/audit-fix.md": "d511f4094ce351aa",
|
|
"gsd-core/workflows/audit-milestone.md": "3835762c3147a927",
|
|
"gsd-core/workflows/audit-uat.md": "fcfbec501620b564",
|
|
"gsd-core/workflows/autonomous.md": "7e5683728ef33707",
|
|
"gsd-core/workflows/check-todos.md": "bdeaf43f9c61e0cc",
|
|
"gsd-core/workflows/cleanup.md": "0daa2f2720c111f1",
|
|
"gsd-core/workflows/code-review-fix.md": "2e113d1f4350a075",
|
|
"gsd-core/workflows/code-review.md": "c877ad812b4a511e",
|
|
"gsd-core/workflows/complete-milestone.md": "c1f91b77f4ace7f2",
|
|
"gsd-core/workflows/debug.md": "98c8ed5af882ef8f",
|
|
"gsd-core/workflows/diagnose-issues.md": "77d98ac07c4a26ff",
|
|
"gsd-core/workflows/discovery-phase.md": "3ba7cfb89fb1e761",
|
|
"gsd-core/workflows/discuss-phase-assumptions.md": "f5b765d33eba4f88",
|
|
"gsd-core/workflows/discuss-phase-power.md": "0841f7dc6e9a054a",
|
|
"gsd-core/workflows/discuss-phase.md": "02a5381c9a2173be",
|
|
"gsd-core/workflows/discuss-phase/modes/advisor.md": "db488d74d080c653",
|
|
"gsd-core/workflows/discuss-phase/modes/all.md": "fa70d79066562e54",
|
|
"gsd-core/workflows/discuss-phase/modes/analyze.md": "da0788f3be7f8105",
|
|
"gsd-core/workflows/discuss-phase/modes/auto.md": "d06f0bea2ba0b240",
|
|
"gsd-core/workflows/discuss-phase/modes/batch.md": "6946597770e2d448",
|
|
"gsd-core/workflows/discuss-phase/modes/chain.md": "5502a67de7776853",
|
|
"gsd-core/workflows/discuss-phase/modes/default.md": "67d1b67f61f03966",
|
|
"gsd-core/workflows/discuss-phase/modes/power.md": "fdc7a728eaaa2261",
|
|
"gsd-core/workflows/discuss-phase/modes/text.md": "da6d45207da4a988",
|
|
"gsd-core/workflows/discuss-phase/templates/checkpoint.json": "e3bc3dca49db59eb",
|
|
"gsd-core/workflows/discuss-phase/templates/context.md": "6cd929e989fe2b0f",
|
|
"gsd-core/workflows/discuss-phase/templates/discussion-log.md": "1bbd7703f11128e1",
|
|
"gsd-core/workflows/do.md": "7512dd1892f118a1",
|
|
"gsd-core/workflows/docs-update.md": "f35922d15b7061c9",
|
|
"gsd-core/workflows/edit-phase.md": "966a3eadd1bebc04",
|
|
"gsd-core/workflows/eval-review.md": "f898936e2cfe4130",
|
|
"gsd-core/workflows/execute-phase.md": "bae1b74bd250c6e6",
|
|
"gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md": "4e265392b3f2ba0e",
|
|
"gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md": "7ebb7d1af6082028",
|
|
"gsd-core/workflows/execute-phase/steps/post-merge-gate.md": "7b2d9a4a4013fd6a",
|
|
"gsd-core/workflows/execute-phase/steps/regression-gate.md": "7a49bc47da5411ea",
|
|
"gsd-core/workflows/execute-phase/steps/worktree-recovery-policy.md": "be84efbd71e1513e",
|
|
"gsd-core/workflows/execute-plan.md": "1c26c1cf464fa6b7",
|
|
"gsd-core/workflows/explore.md": "6c04f2e658d93261",
|
|
"gsd-core/workflows/extract-learnings.md": "b6f01ca3d8f58de4",
|
|
"gsd-core/workflows/fast.md": "11f5cd10ae5cc7d3",
|
|
"gsd-core/workflows/forensics.md": "0d500a3f5ab26913",
|
|
"gsd-core/workflows/graduation.md": "47f1594c88c08501",
|
|
"gsd-core/workflows/health.md": "107e3c72e76d9535",
|
|
"gsd-core/workflows/help.md": "5d040504b9ab35e3",
|
|
"gsd-core/workflows/help/modes/brief.md": "924860e1f07defb0",
|
|
"gsd-core/workflows/help/modes/default.md": "08a02976c0c5cc50",
|
|
"gsd-core/workflows/help/modes/full.md": "5eefc87999cde1a6",
|
|
"gsd-core/workflows/help/modes/topic.md": "5c160093f3cbf35d",
|
|
"gsd-core/workflows/import.md": "3d3fa603ceb8bc9f",
|
|
"gsd-core/workflows/inbox.md": "437f981ef9ae7b26",
|
|
"gsd-core/workflows/ingest-docs.md": "c859921c811ac11b",
|
|
"gsd-core/workflows/insert-phase.md": "08dca838d831bb5b",
|
|
"gsd-core/workflows/list-phase-assumptions.md": "53dd4b69536c1bc3",
|
|
"gsd-core/workflows/list-seeds.md": "b687f2a843032d65",
|
|
"gsd-core/workflows/list-workspaces.md": "7f94e18b5c549453",
|
|
"gsd-core/workflows/manager.md": "3ba7a3e8213c4b23",
|
|
"gsd-core/workflows/map-codebase.md": "83d750aade709983",
|
|
"gsd-core/workflows/milestone-summary.md": "e0cdfddbd39a9043",
|
|
"gsd-core/workflows/mvp-phase.md": "344dd300e0cc1e74",
|
|
"gsd-core/workflows/new-milestone.md": "83bf5593e94c3377",
|
|
"gsd-core/workflows/new-project.md": "278e0b88dd1d2ea0",
|
|
"gsd-core/workflows/new-workspace.md": "017688423110ed66",
|
|
"gsd-core/workflows/next.md": "13fb800f2472d970",
|
|
"gsd-core/workflows/node-repair.md": "07a1628e5a1ff96b",
|
|
"gsd-core/workflows/note.md": "5a99eb396c744619",
|
|
"gsd-core/workflows/onboard.md": "6f9e6c0b484271a9",
|
|
"gsd-core/workflows/pause-work.md": "f2b33bba5593d422",
|
|
"gsd-core/workflows/plan-milestone-gaps.md": "852f6d7c0c4299dc",
|
|
"gsd-core/workflows/plan-phase.md": "1d58b8554e8cc29a",
|
|
"gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "b36f77ac7344a072",
|
|
"gsd-core/workflows/plan-phase/steps/prd-express-path.md": "197c0590326371b2",
|
|
"gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "49f58c3f75be3eb5",
|
|
"gsd-core/workflows/plan-review-convergence.md": "8b23bf9142cf7ec7",
|
|
"gsd-core/workflows/plant-seed.md": "10b92ae08a6fdede",
|
|
"gsd-core/workflows/pr-branch.md": "c87db7ac8c28be1b",
|
|
"gsd-core/workflows/profile-user.md": "4fa910d15dea5695",
|
|
"gsd-core/workflows/progress.md": "9457fb10437c9402",
|
|
"gsd-core/workflows/quick.md": "0bd83bd88c5e63d1",
|
|
"gsd-core/workflows/reapply-patches.md": "39050f72601aec89",
|
|
"gsd-core/workflows/remove-phase.md": "df9a45f0b1880999",
|
|
"gsd-core/workflows/remove-workspace.md": "a7ca66db6b7c132c",
|
|
"gsd-core/workflows/resume-project.md": "f28da1200e4545f4",
|
|
"gsd-core/workflows/review.md": "f1fbefbd64bd890e",
|
|
"gsd-core/workflows/scan.md": "003883d71c37da7d",
|
|
"gsd-core/workflows/secure-phase.md": "22ab3bb5da494ea7",
|
|
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
|
"gsd-core/workflows/settings-advanced.md": "414db4dbea97ba44",
|
|
"gsd-core/workflows/settings-integrations.md": "70515c5838fb9826",
|
|
"gsd-core/workflows/settings.md": "d96ddf01fb85e61e",
|
|
"gsd-core/workflows/ship.md": "369f1461685d1897",
|
|
"gsd-core/workflows/sketch-wrap-up.md": "2aba89ecd8f41a0d",
|
|
"gsd-core/workflows/sketch.md": "5eedd93f9a5b49d5",
|
|
"gsd-core/workflows/smart-entry.md": "449238eb94abe187",
|
|
"gsd-core/workflows/spec-phase.md": "fa8669b75392cf6c",
|
|
"gsd-core/workflows/spike-wrap-up.md": "2b004744c52e565c",
|
|
"gsd-core/workflows/spike.md": "24a0fee1447b6f0a",
|
|
"gsd-core/workflows/stats.md": "76a42cbeaf6007c2",
|
|
"gsd-core/workflows/sync-skills.md": "b505e6f8331c0918",
|
|
"gsd-core/workflows/thread.md": "927e7eeefd2fcf5c",
|
|
"gsd-core/workflows/transition.md": "aea486bb7a0e80e7",
|
|
"gsd-core/workflows/ui-phase.md": "e4bef31fd9389c63",
|
|
"gsd-core/workflows/ui-review.md": "7acfc485526d064b",
|
|
"gsd-core/workflows/ultraplan-phase.md": "0fb8291153e3937d",
|
|
"gsd-core/workflows/undo.md": "96d2775f008b3a85",
|
|
"gsd-core/workflows/update.md": "5ff1f77222977648",
|
|
"gsd-core/workflows/validate-phase.md": "ce9890f21c6e5607",
|
|
"gsd-core/workflows/verify-phase.md": "d26a2c3269340caf",
|
|
"gsd-core/workflows/verify-work.md": "63b3f680d8f0a6f3",
|
|
"hooks/gsd-check-update-worker.js": "bdc9324a2f080ddd",
|
|
"hooks/gsd-check-update.js": "b7669f605631e506",
|
|
"hooks/gsd-config-reload.js": "96546e0e8bb47904",
|
|
"hooks/gsd-context-monitor.js": "8d512ba0b08fc4e3",
|
|
"hooks/gsd-cursor-post-tool.js": "9168e0a09de1972a",
|
|
"hooks/gsd-cursor-pre-tool.js": "873998b25e308c29",
|
|
"hooks/gsd-cursor-session-start.js": "9b2e6f4f0c405375",
|
|
"hooks/gsd-cursor-stop.js": "bfaaf60f419e3238",
|
|
"hooks/gsd-cursor-subagent-start.js": "06d77fde5c1372b6",
|
|
"hooks/gsd-cursor-subagent-stop.js": "4bbf22917da4d389",
|
|
"hooks/gsd-ensure-canonical-path.js": "434887487ae63ec5",
|
|
"hooks/gsd-graphify-update.sh": "e4c6e14fe6ad64ff",
|
|
"hooks/gsd-phase-boundary.sh": "32739d5fbe0d0a1c",
|
|
"hooks/gsd-prompt-guard.js": "a749b8cb2c5248de",
|
|
"hooks/gsd-read-guard.js": "9e423cd03e2d1b16",
|
|
"hooks/gsd-read-injection-scanner.js": "7f7a7615b303369a",
|
|
"hooks/gsd-session-state.sh": "e54379ba86bf1b6d",
|
|
"hooks/gsd-statusline.js": "7cdf1ae0e5b17969",
|
|
"hooks/gsd-update-banner.js": "55143a25f978f301",
|
|
"hooks/gsd-validate-commit.sh": "bf5dd61d33cb3a38",
|
|
"hooks/gsd-windsurf-pre-command.js": "948be1c6d14c79cd",
|
|
"hooks/gsd-windsurf-pre-write.js": "92d4dbfbc36ab0cf",
|
|
"hooks/gsd-workflow-guard.js": "91ae24a15d2bca6f",
|
|
"hooks/gsd-worktree-path-guard.js": "548fc57131a04fa7",
|
|
"hooks/lib/git-cmd.js": "268ba15992ca0b23",
|
|
"hooks/lib/gsd-graphify-rebuild.sh": "66af89601074d2a9",
|
|
"hooks/managed-hooks-registry.cjs": "9c0d837594c7b772",
|
|
"package.json": "dbf8353f77358bc1",
|
|
"scripts/changeset/README.md": "86ff89331dfd94b2",
|
|
"scripts/changeset/cli.cjs": "68f92a344b199271",
|
|
"scripts/changeset/github-release-notes.cjs": "795677f0c009b132",
|
|
"scripts/changeset/lint.cjs": "23cb53f77a6ea180",
|
|
"scripts/changeset/new.cjs": "4991e21fd17f5541",
|
|
"scripts/changeset/parse.cjs": "f9a949cbcab56445",
|
|
"scripts/changeset/render.cjs": "e47bc3e1587c3cae",
|
|
"scripts/changeset/serialize.cjs": "ac0b8fe6f87cdb0e",
|
|
"scripts/fix-slash-commands.cjs": "0519742531ff3529",
|
|
"scripts/gen-capability-registry.cjs": "c52201ff4d1c2cd7",
|
|
"scripts/gen-loop-host-contract.cjs": "c7f15237234811a0",
|
|
"scripts/lib/allowlist-ratchet.cjs": "ffaceaac3efc2660",
|
|
"scripts/lib/cli-exit.cjs": "612d0c372c75b7e7",
|
|
"skills/gsd-add-tests/SKILL.md": "60dd7f9779d5f493",
|
|
"skills/gsd-ai-integration-phase/SKILL.md": "eb9b5d76d91dd2fe",
|
|
"skills/gsd-audit-fix/SKILL.md": "309dcbc406750fd6",
|
|
"skills/gsd-audit-milestone/SKILL.md": "1f328f0c7448f27c",
|
|
"skills/gsd-audit-uat/SKILL.md": "597d4f8cd0fa5240",
|
|
"skills/gsd-autonomous/SKILL.md": "faf243b21954b407",
|
|
"skills/gsd-capture/SKILL.md": "6de5ad4b9ea3b599",
|
|
"skills/gsd-cleanup/SKILL.md": "fa47be0052de815b",
|
|
"skills/gsd-code-review/SKILL.md": "86a9df56bbd7ac7b",
|
|
"skills/gsd-complete-milestone/SKILL.md": "a0a9e43312160286",
|
|
"skills/gsd-config/SKILL.md": "862626bacdeb9e75",
|
|
"skills/gsd-debug/SKILL.md": "ecd7e69309a6e6dc",
|
|
"skills/gsd-discuss-phase/SKILL.md": "75fec0c03892505a",
|
|
"skills/gsd-docs-update/SKILL.md": "bec33cfc810194d9",
|
|
"skills/gsd-eval-review/SKILL.md": "65e26f5ec8ff57cc",
|
|
"skills/gsd-execute-phase/SKILL.md": "40e479d06dbd8da4",
|
|
"skills/gsd-explore/SKILL.md": "fc2d0fd090e7090d",
|
|
"skills/gsd-extract-learnings/SKILL.md": "778faa10f3c33788",
|
|
"skills/gsd-fast/SKILL.md": "6c81b52c310d43fa",
|
|
"skills/gsd-forensics/SKILL.md": "6c69cbd255d3a33a",
|
|
"skills/gsd-graphify/SKILL.md": "579180d7ea6e24cf",
|
|
"skills/gsd-health/SKILL.md": "e60400c5acb8248c",
|
|
"skills/gsd-help/SKILL.md": "98a2eeba302621d2",
|
|
"skills/gsd-import/SKILL.md": "f3d3ad26dfdfbd53",
|
|
"skills/gsd-inbox/SKILL.md": "0eb81a1b2e1835d3",
|
|
"skills/gsd-ingest-docs/SKILL.md": "2df55e0ec95d57d9",
|
|
"skills/gsd-manager/SKILL.md": "816db4d4ed618537",
|
|
"skills/gsd-map-codebase/SKILL.md": "b304ec25e9a95c93",
|
|
"skills/gsd-mempalace-capture/SKILL.md": "cb6238896332cedf",
|
|
"skills/gsd-mempalace-recall/SKILL.md": "70c8491f53f4161b",
|
|
"skills/gsd-milestone-summary/SKILL.md": "9eb030a1ac307fa1",
|
|
"skills/gsd-mvp-phase/SKILL.md": "236fcdd69f47d101",
|
|
"skills/gsd-new-milestone/SKILL.md": "be371ad30631385e",
|
|
"skills/gsd-new-project/SKILL.md": "793f7177d3bd026b",
|
|
"skills/gsd-next/SKILL.md": "43c805425b88bf75",
|
|
"skills/gsd-ns-context/SKILL.md": "305b9b6248e8cc95",
|
|
"skills/gsd-ns-ideate/SKILL.md": "c63a1aed61888b35",
|
|
"skills/gsd-ns-manage/SKILL.md": "6a5b711b5103c566",
|
|
"skills/gsd-ns-project/SKILL.md": "3711ce904d20ca66",
|
|
"skills/gsd-ns-review/SKILL.md": "98f1f3b3caf1a279",
|
|
"skills/gsd-ns-workflow/SKILL.md": "b77682820700300b",
|
|
"skills/gsd-onboard/SKILL.md": "6ad789a03124cd4f",
|
|
"skills/gsd-pause-work/SKILL.md": "e2de20b7539e78d4",
|
|
"skills/gsd-phase/SKILL.md": "f87211f779315ced",
|
|
"skills/gsd-plan-phase/SKILL.md": "5f00d90224127bd5",
|
|
"skills/gsd-plan-review-convergence/SKILL.md": "bbad9a21eacdbfcf",
|
|
"skills/gsd-pr-branch/SKILL.md": "87bb3306488565fb",
|
|
"skills/gsd-profile-user/SKILL.md": "ee8e8547298006b8",
|
|
"skills/gsd-progress/SKILL.md": "88c8229b673004e3",
|
|
"skills/gsd-quick/SKILL.md": "b895cb9835f3fc0e",
|
|
"skills/gsd-resume-work/SKILL.md": "f8bc8b92dffd07b7",
|
|
"skills/gsd-review-backlog/SKILL.md": "c0c743e1376c2eff",
|
|
"skills/gsd-review/SKILL.md": "e47c285346aaba06",
|
|
"skills/gsd-secure-phase/SKILL.md": "bd36a3157c28df37",
|
|
"skills/gsd-settings/SKILL.md": "fbe736decd04a85d",
|
|
"skills/gsd-ship/SKILL.md": "8d40fc9f9436d2c3",
|
|
"skills/gsd-sketch/SKILL.md": "0686257acc865e0b",
|
|
"skills/gsd-spec-phase/SKILL.md": "96a095cd634129d8",
|
|
"skills/gsd-spike/SKILL.md": "d4af42b801139876",
|
|
"skills/gsd-stats/SKILL.md": "7d1fbadcae5f0b67",
|
|
"skills/gsd-surface/SKILL.md": "1b840c8ddd76b9c7",
|
|
"skills/gsd-thread/SKILL.md": "18ddd2aa60997949",
|
|
"skills/gsd-ui-phase/SKILL.md": "132ccf2ddc9e24e0",
|
|
"skills/gsd-ui-review/SKILL.md": "7e8cf0bcee9859cd",
|
|
"skills/gsd-ultraplan-phase/SKILL.md": "212a60a2df7bbb71",
|
|
"skills/gsd-undo/SKILL.md": "ebaca8bea34afd2e",
|
|
"skills/gsd-update/SKILL.md": "fd60247c80431aa9",
|
|
"skills/gsd-validate-phase/SKILL.md": "5216ef11d14f109b",
|
|
"skills/gsd-verify-work/SKILL.md": "d467197419fdbdf5",
|
|
"skills/gsd-workspace/SKILL.md": "7fcacf69b4c07655",
|
|
"skills/gsd-workstreams/SKILL.md": "b84ca1f541d6dfd1"
|
|
}
|