audit-tools 0.51.9 → 0.51.11

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.
Files changed (43) hide show
  1. package/dist/audit/orchestrator/resultBaseline.d.ts +1 -1
  2. package/dist/remediate/phases/close.d.ts +11 -4
  3. package/dist/remediate/phases/close.d.ts.map +1 -1
  4. package/dist/remediate/phases/close.js +72 -8
  5. package/dist/remediate/phases/close.js.map +1 -1
  6. package/dist/remediate/phases/closeVerifyLandingGates.d.ts +85 -0
  7. package/dist/remediate/phases/closeVerifyLandingGates.d.ts.map +1 -0
  8. package/dist/remediate/phases/closeVerifyLandingGates.js +48 -0
  9. package/dist/remediate/phases/closeVerifyLandingGates.js.map +1 -0
  10. package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
  11. package/dist/remediate/steps/contractPipeline.js +75 -9
  12. package/dist/remediate/steps/contractPipeline.js.map +1 -1
  13. package/dist/remediate/steps/contractPipelinePrompts.d.ts.map +1 -1
  14. package/dist/remediate/steps/contractPipelinePrompts.js +11 -7
  15. package/dist/remediate/steps/contractPipelinePrompts.js.map +1 -1
  16. package/dist/remediate/steps/dispatch/hostHandoff.d.ts.map +1 -1
  17. package/dist/remediate/steps/dispatch/hostHandoff.js +41 -5
  18. package/dist/remediate/steps/dispatch/hostHandoff.js.map +1 -1
  19. package/dist/remediate/types/options.d.ts +6 -0
  20. package/dist/remediate/types/options.d.ts.map +1 -1
  21. package/dist/shared/contentKey.d.ts +4 -4
  22. package/dist/shared/contentKey.js +3 -3
  23. package/dist/shared/index.d.ts +3 -1
  24. package/dist/shared/index.d.ts.map +1 -1
  25. package/dist/shared/index.js +2 -1
  26. package/dist/shared/index.js.map +1 -1
  27. package/dist/shared/prompts.d.ts +14 -3
  28. package/dist/shared/prompts.d.ts.map +1 -1
  29. package/dist/shared/prompts.js +17 -4
  30. package/dist/shared/prompts.js.map +1 -1
  31. package/dist/shared/tooling/landingGates.d.ts +118 -0
  32. package/dist/shared/tooling/landingGates.d.ts.map +1 -0
  33. package/dist/shared/tooling/landingGates.js +314 -0
  34. package/dist/shared/tooling/landingGates.js.map +1 -0
  35. package/dist/shared/tooling/projectTestAdmission.d.ts +16 -0
  36. package/dist/shared/tooling/projectTestAdmission.d.ts.map +1 -1
  37. package/dist/shared/tooling/projectTestAdmission.js +73 -10
  38. package/dist/shared/tooling/projectTestAdmission.js.map +1 -1
  39. package/dist/shared/tooling/testCommand.d.ts.map +1 -1
  40. package/dist/shared/tooling/testCommand.js +10 -0
  41. package/dist/shared/tooling/testCommand.js.map +1 -1
  42. package/docs/audit-pkg/product.md +2 -4
  43. package/package.json +1 -1
@@ -98,6 +98,7 @@ export { stableStringifyProjection, diffProjections, renderDiffReReviewSection,
98
98
  export { runTracked, runTrackedAsync, TRACKED_CHILD_DEADLINE_MS, resolveSpawnDeadline, describeDeadlineMiss, spawnSyncHidden, spawnHidden, resolveExecArgv, quoteForCmd, shellQuote, renderPromptCommand, toPromptPathToken, quotePromptCommandArg, coerceJsonObjectArg, platformCommand, quoteForShellInterpreterCmd, stripAuditToolsControlEnv, } from "./tooling/exec.js";
99
99
  export { ALLOWLISTED_EXEC_TIMEOUT_MS, ANCHOR_ALLOWLIST, GIT_READONLY_SUBCOMMANDS, executableBaseName, isAllowedAnchorCommand, runAllowlistedReadOnlyCommand, } from "./tooling/allowlistedExec.js";
100
100
  export { discoverProjectCommands } from "./tooling/testCommand.js";
101
+ export { GLOSSARY_DOCUMENT_PATH, LANDING_GATE_SCRIPT_NAMES, declaresInvariantId, declaredInvariantIds, discoverLandingGates, landingGateRefusal, withGlossaryScope, } from "./tooling/landingGates.js";
101
102
  export { CLOSING_ACTIONS, isClosingAction } from "./types/closingActions.js";
102
103
  export { candidateClosingActions, detectProjectFacts, neutralProjectFacts, } from "./tooling/projectFacts.js";
103
104
  // Tooling: THE declared single-invocation command shape. One rule, asked by
@@ -105,7 +106,7 @@ export { candidateClosingActions, detectProjectFacts, neutralProjectFacts, } fro
105
106
  // producer's promotion normalizer, the host-handoff consumer, and the triage
106
107
  // re-verification spawn.
107
108
  export { commandLeavesDeclaredShape, partitionCommandsByDeclaredShape, parseCommandString, splitSequentialCommandChain, } from "./tooling/commandShape.js";
108
- export { PROJECT_TEST_TIMEOUT_MS, PROJECT_TEST_SIGKILL_GRACE_MS, PROJECT_TEST_MAX_CAPTURED_OUTPUT, isAdmittedProjectTestCommand, runAdmittedProjectTestCommand, runAdmittedProjectE2eCommand, } from "./tooling/projectTestAdmission.js";
109
+ export { PROJECT_TEST_TIMEOUT_MS, PROJECT_TEST_SIGKILL_GRACE_MS, PROJECT_TEST_MAX_CAPTURED_OUTPUT, isAdmittedProjectTestCommand, runAdmittedProjectTestCommand, runAdmittedProjectE2eCommand, runAdmittedProjectLandingGateCommand, } from "./tooling/projectTestAdmission.js";
109
110
  export { ANALYZER_CACHE_ROOT_MODE, analyzerCacheRoot, parseAnalyzerSpec, resolveAnalyzerDep, installToCache, } from "./tooling/analyzerDeps.js";
110
111
  // Git helpers
111
112
  export { isGitRepo, gitRefExists, changedFiles, fileCommits, fileContentAtRef, headCommit, gitRemotes, stagedAndUntracked, mineGitHistory, } from "./git.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAOrE,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,EACL,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAMvE,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,4BAA4B,EAC5B,8BAA8B,GAC/B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAmBvF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,+EAA+E;AAC/E,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,+BAA+B,EAC/B,6BAA6B,EAC7B,uBAAuB,EACvB,0BAA0B,EAC1B,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,+BAA+B,EAC/B,uBAAuB,EACvB,sBAAsB,EACtB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAW5B,OAAO,EACL,+BAA+B,EAC/B,4BAA4B,EAC5B,sBAAsB,EACtB,oBAAoB,EACpB,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AAarC,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,EACvB,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EACf,aAAa,EACb,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,OAAO,EACP,YAAY,EACZ,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAOnC,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAuB7E,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,6BAA6B,EAC7B,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,6BAA6B,EAC7B,+BAA+B,GAChC,MAAM,oBAAoB,CAAC;AAS5B,OAAO,EACL,uBAAuB,IAAI,2BAA2B,EACtD,6BAA6B,EAC7B,iCAAiC,EACjC,+BAA+B,EAC/B,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,cAAc,GACf,MAAM,kCAAkC,CAAC;AAW1C,OAAO,EACL,6BAA6B,EAC7B,eAAe,EACf,oCAAoC,GACrC,MAAM,qCAAqC,CAAC;AAO7C,OAAO,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AAErF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAQhF,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,eAAe,EACf,cAAc,GACf,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAStE,OAAO,EACL,8BAA8B,EAC9B,wBAAwB,EACxB,+BAA+B,EAC/B,4BAA4B,EAC5B,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,YAAY,GACb,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,UAAU,EACV,MAAM,EACN,YAAY,EACZ,MAAM,EACN,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAC7B,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EACL,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAE7B,gFAAgF;AAChF,yEAAyE;AACzE,0BAA0B;AAC1B,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,kBAAkB,EAClB,iCAAiC,EACjC,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AAErC,YAAY;AACZ,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,wEAAwE;AACxE,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,uBAAuB,EACvB,gCAAgC,EAChC,iCAAiC,EACjC,sCAAsC,EACtC,wBAAwB,EACxB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAgBlC,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,SAAS;AACT,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,gCAAgC,EAChC,8BAA8B,EAC9B,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB,iEAAiE;AACjE,6EAA6E;AAC7E,oEAAoE;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,6EAA6E;AAC7E,0EAA0E;AAC1E,0EAA0E;AAC1E,4EAA4E;AAC5E,+EAA+E;AAC/E,+DAA+D;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAenD,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,8BAA8B,EAC9B,0BAA0B,EAC1B,oCAAoC,EACpC,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,iCAAiC,CAAC;AACzC,gFAAgF;AAChF,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AAEvC,sDAAsD;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,4DAA4D;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAQxC,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AAEvC,8EAA8E;AAC9E,8EAA8E;AAC9E,8EAA8E;AAC9E,kEAAkE;AAClE,uDAAuD;AACvD,OAAO,EACL,WAAW,EACX,eAAe,EACf,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AASxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,kFAAkF;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AASvD,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,oCAAoC,CAAC;AAO5C,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,sBAAsB,GACvB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,iCAAiC,CAAC;AAQzC,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,eAAe,EACf,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,qCAAqC,CAAC;AAQ7C,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,wCAAwC,EACxC,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,6BAA6B,GAC9B,MAAM,kCAAkC,CAAC;AAK1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AASjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAYrE,OAAO,EACL,6BAA6B,EAC7B,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,2BAA2B,EAC3B,8BAA8B,EAC9B,wBAAwB,GACzB,MAAM,oCAAoC,CAAC;AAE5C,sEAAsE;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,8EAA8E;AAC9E,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE/D,8EAA8E;AAC9E,gFAAgF;AAChF,+EAA+E;AAC/E,mEAAmE;AACnE,2CAA2C;AAC3C,OAAO,EACL,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAC5B,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EACvB,QAAQ,EACR,QAAQ,EACR,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,WAAW,GACZ,MAAM,iCAAiC,CAAC;AAqBzC,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAC/B,0BAA0B,EAC1B,2BAA2B,EAC3B,4BAA4B,EAC5B,WAAW,EACX,cAAc,EACd,UAAU,EACV,aAAa,GACd,MAAM,iBAAiB,CAAC;AASzB,OAAO,EACL,yBAAyB,EACzB,eAAe,EACf,yBAAyB,GAC1B,MAAM,8BAA8B,CAAC;AAUtC,OAAO,EACL,UAAU,EACV,eAAe,EACf,yBAAyB,EACzB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,eAAe,EACf,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAS3B,OAAO,EACL,2BAA2B,EAC3B,gBAAgB,EAChB,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,8BAA8B,CAAC;AAItC,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAMnE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE7E,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AAEnC,4EAA4E;AAC5E,6EAA6E;AAC7E,6EAA6E;AAC7E,yBAAyB;AACzB,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,EAChC,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAOnC,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,gCAAgC,EAChC,4BAA4B,EAC5B,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,mCAAmC,CAAC;AAU3C,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,GACf,MAAM,2BAA2B,CAAC;AAEnC,cAAc;AACd,OAAO,EACL,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,cAAc,GACf,MAAM,UAAU,CAAC;AAWlB,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,KAAK;AACL,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,0BAA0B,EAC1B,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,2EAA2E;AAC3E,wEAAwE;AACxE,+EAA+E;AAC/E,8EAA8E;AAC9E,gDAAgD;AAChD,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAE/B,gFAAgF;AAChF,+EAA+E;AAC/E,6CAA6C;AAC7C,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAS1B,OAAO,EACL,qBAAqB,EACrB,UAAU,EACV,4BAA4B,EAC5B,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,+BAA+B,GAChC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,0EAA0E;AAC1E,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,QAAQ,EACR,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AAEjC,wEAAwE;AACxE,mFAAmF;AACnF,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAE9B,6EAA6E;AAC7E,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG9E,8EAA8E;AAC9E,4EAA4E;AAC5E,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,8BAA8B,EAC9B,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AAWnC,OAAO,EACL,+BAA+B,EAC/B,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,EAC3B,aAAa,GACd,MAAM,yBAAyB,CAAC;AASjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAW1E,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,mCAAmC,CAAC;AAiB3C,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EACL,kBAAkB,EAClB,4BAA4B,GAC7B,MAAM,8BAA8B,CAAC;AAMtC,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAWpC,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EACL,aAAa,EACb,QAAQ,EACR,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,WAAW,GACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,EAC3B,uBAAuB,EACvB,gCAAgC,EAChC,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,gCAAgC,CAAC;AAMxC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,4BAA4B,EAC5B,yBAAyB,EACzB,YAAY,EACZ,0BAA0B,EAC1B,sBAAsB,EACtB,iBAAiB,EACjB,iCAAiC,GAClC,MAAM,kCAAkC,CAAC;AAiB1C,OAAO,EACL,sCAAsC,EACtC,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAQlC,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,mCAAmC,CAAC;AAE3C,iFAAiF;AACjF,2EAA2E;AAC3E,6EAA6E;AAC7E,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,wCAAwC,CAAC;AAEhD,+EAA+E;AAC/E,6EAA6E;AAC7E,mEAAmE;AACnE,EAAE;AACF,iEAAiE;AACjE,2EAA2E;AAC3E,+EAA+E;AAC/E,kDAAkD;AAClD,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,EACrB,WAAW,GACZ,MAAM,2CAA2C,CAAC;AAUnD,2EAA2E;AAC3E,uEAAuE;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAY7E,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,qBAAqB,EACrB,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AAItB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAgClD,OAAO,EACL,uBAAuB,EACvB,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,mCAAmC,EACnC,wCAAwC,EACxC,qCAAqC,EACrC,oDAAoD,EACpD,2CAA2C,EAC3C,oDAAoD,EACpD,wCAAwC,EACxC,sCAAsC,EACtC,4CAA4C,EAC5C,6CAA6C,EAC7C,6CAA6C,GAC9C,MAAM,6BAA6B,CAAC;AAIrC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AAIrC,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,eAAe,EACf,aAAa,EACb,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAW9B,OAAO,EAAE,uCAAuC,EAAE,MAAM,iCAAiC,CAAC;AAe1F,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,2BAA2B,EAC3B,6BAA6B,EAC7B,kBAAkB,EAClB,OAAO,EACP,mBAAmB,EACnB,uBAAuB,EACvB,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,6EAA6E;AAC7E,2EAA2E;AAC3E,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,6BAA6B,EAC7B,UAAU,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,kCAAkC,CAAC;AAa1C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AASpF,OAAO,EACL,gCAAgC,EAChC,+BAA+B,EAC/B,mCAAmC,EACnC,gCAAgC,EAChC,6BAA6B,EAC7B,uCAAuC,EACvC,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAQ9B,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,GAC9B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,4BAA4B,EAC5B,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,WAAW,GACZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"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"}
@@ -40,9 +40,20 @@ export declare const DISPATCH_PROMPT_HANDOFF_NOTE: string;
40
40
  * CP-BLOCK-IMPL-mandatory-independent-critic). The mandate keys on what the lane
41
41
  * IS (an adversarial review of work an agent authored), not on what the host
42
42
  * reports it can do: one capability-neutral text carries both the mandate and
43
- * the explicitly-degraded no-subagent fallback, so the same artifact renders on
44
- * every host and an author self-review is never licensed at full strength.
45
- * Single-sourced so audit-code and remediate-code stay in parity.
43
+ * the explicitly-degraded no-independent-context fallback, so the same artifact
44
+ * renders on every host and an author self-review is never licensed at full
45
+ * strength. Single-sourced so audit-code and remediate-code stay in parity.
46
+ *
47
+ * ⚠ THE MANDATE STATES THE NEED, NEVER A MECHANISM. It used to say "dispatch it
48
+ * to a fresh, independent sub-agent", which names one way to get independence
49
+ * and presumes the host has it — in-process subagents are not universal, and a
50
+ * host without them read an instruction it could not follow (the same defect the
51
+ * contract-pipeline fan-out carried; see `module_contract_drafting`'s "what this
52
+ * work needs" line in contractPipeline.ts). Independence is a property of the
53
+ * CONTEXT, so that is what the text requires and the host owns the mechanism.
54
+ * The fallback instruction stays — not as a capability claim the tool cannot
55
+ * verify, but as the one escape a host can honestly take, with the degraded
56
+ * independence recorded in the output.
46
57
  *
47
58
  * `depth: "light"` is remediate's proportionate low-risk floor (T1 slice 3) — a
48
59
  * lightweight inline self-check, never skipped; it is a DEPTH policy, orthogonal
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/shared/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC;;0BAEsB;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAMxE;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,QAG+C,CAAC;AAEzF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GACvB,MAAM,CAWR;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IACjD;;;;;;OAMG;IACH,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KAC7D,EAAE,CAAC;IACJ,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,GAAG,MAAM,EAAE,CAwCX;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAMpE"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/shared/prompts.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC;;0BAEsB;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAMxE;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,QAG+C,CAAC;AAEzF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GACvB,MAAM,CAaR;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IACjD;;;;;;OAMG;IACH,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KAC7D,EAAE,CAAC;IACJ,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,GAAG,MAAM,EAAE,CAwCX;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAMpE"}
@@ -33,9 +33,20 @@ export const DISPATCH_PROMPT_HANDOFF_NOTE = "For each subagent, pass its `prompt
33
33
  * CP-BLOCK-IMPL-mandatory-independent-critic). The mandate keys on what the lane
34
34
  * IS (an adversarial review of work an agent authored), not on what the host
35
35
  * reports it can do: one capability-neutral text carries both the mandate and
36
- * the explicitly-degraded no-subagent fallback, so the same artifact renders on
37
- * every host and an author self-review is never licensed at full strength.
38
- * Single-sourced so audit-code and remediate-code stay in parity.
36
+ * the explicitly-degraded no-independent-context fallback, so the same artifact
37
+ * renders on every host and an author self-review is never licensed at full
38
+ * strength. Single-sourced so audit-code and remediate-code stay in parity.
39
+ *
40
+ * ⚠ THE MANDATE STATES THE NEED, NEVER A MECHANISM. It used to say "dispatch it
41
+ * to a fresh, independent sub-agent", which names one way to get independence
42
+ * and presumes the host has it — in-process subagents are not universal, and a
43
+ * host without them read an instruction it could not follow (the same defect the
44
+ * contract-pipeline fan-out carried; see `module_contract_drafting`'s "what this
45
+ * work needs" line in contractPipeline.ts). Independence is a property of the
46
+ * CONTEXT, so that is what the text requires and the host owns the mechanism.
47
+ * The fallback instruction stays — not as a capability claim the tool cannot
48
+ * verify, but as the one escape a host can honestly take, with the degraded
49
+ * independence recorded in the output.
39
50
  *
40
51
  * `depth: "light"` is remediate's proportionate low-risk floor (T1 slice 3) — a
41
52
  * lightweight inline self-check, never skipped; it is a DEPTH policy, orthogonal
@@ -50,7 +61,9 @@ The assessed risk for this change is low, so this adversarial phase runs as a **
50
61
  }
51
62
  return `\n## Independent Review — MANDATORY
52
63
 
53
- This is an adversarial review lane: its value comes from a reviewer who is **not** the author of the work under review. It MUST be executed by an agent that did not author that work and does not see the author's reasoning — an author grading their own work systematically misses the gaps this lane exists to catch. Dispatch it to a fresh, independent sub-agent. If — and only if — no sub-agent facility exists on this host, execute it inline as the explicitly-degraded fallback: adopt a fresh adversarial stance, set aside the author's reasoning, and attack the work as a hostile outside reviewer would. Inline self-review is the degraded fallback, never the intended path.
64
+ This is an adversarial review lane: its value comes from a reviewer who is **not** the author of the work under review. **What this needs is an independent context** — a review produced without shared authorship of the work and without the author's reasoning in view. An author grading their own work systematically misses the gaps this lane exists to catch, and that failure is a property of sharing the authorship, not of any particular execution mechanism.
65
+
66
+ Produce the review from a context that did not author the work and cannot see the author's reasoning — the host chooses how that context is obtained. If the host genuinely cannot produce one, execute it inline as the explicitly-degraded fallback — adopt a fresh adversarial stance, set aside the author's reasoning, and attack the work as a hostile outside reviewer would — and say in the output that the review was self-conducted, so the degraded independence is visible rather than assumed. Inline self-review is the degraded fallback, never the intended path.
54
67
  `;
55
68
  }
56
69
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/shared/prompts.ts"],"names":[],"mappings":"AAgBA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAA2B;IAC9D,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IAChD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,OAAO,GAAG,YAAY,OAAO,eAAe,EAAE,CAAC;AACjD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,4BAA4B,GACvC,yEAAyE;IACzE,6DAA6D;IAC7D,sFAAsF,CAAC;AAEzF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,8BAA8B,CAC5C,KAAwB;IAExB,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO;;;CAGV,CAAC;IACA,CAAC;IACD,OAAO;;;CAGR,CAAC;AACF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAgB1C;IACC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;IAC9B,4EAA4E;IAC5E,6EAA6E;IAC7E,2EAA2E;IAC3E,wBAAwB;IACxB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACZ,OAAO;YACL,2GAA2G;SAC5G,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAClC,MAAM,WAAW,GACf,MAAM,CAAC,eAAe,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC;QACrC,CAAC,CAAC;YACE,iCAAiC,MAAM,CAAC,eAAe,qBAAqB;YAC5E,EAAE;SACH;QACH,CAAC,CAAC,EAAE,CAAC;IACT,OAAO;QACL,eAAe,CAAC,oBAAoB,MAAM,+KAA+K;QACzN,EAAE;QACF,GAAG,WAAW;QACd,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;YACxD,CAAC,CAAC;gBACE,mMAAmM;gBACnM,EAAE;aACH;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CACjB,CAAC,IAAI,EAAE,EAAE,CACP,OAAO,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,UAAU,EAAE;YACzC,CAAC,IAAI,CAAC,MAAM;gBACV,CAAC,CAAC,kBAAkB,IAAI,CAAC,MAAM,CAAC,IAAI,gBAAgB,IAAI,CAAC,MAAM,CAAC,UAAU,UAAU,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG;gBACvG,CAAC,CAAC,EAAE,CAAC;YACP,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,uBAAuB,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACpE;QACD,EAAE;QACF,sSAAsS;KACvS,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,cAAsB;IAC1D,OAAO,CACL,0EAA0E;QAC1E,8CAA8C,cAAc,OAAO;QACnE,yEAAyE,CAC1E,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/shared/prompts.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAA2B;IAC9D,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IAChD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,OAAO,GAAG,YAAY,OAAO,eAAe,EAAE,CAAC;AACjD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,4BAA4B,GACvC,yEAAyE;IACzE,6DAA6D;IAC7D,sFAAsF,CAAC;AAEzF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,8BAA8B,CAC5C,KAAwB;IAExB,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO;;;CAGV,CAAC;IACA,CAAC;IACD,OAAO;;;;;CAKR,CAAC;AACF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAgB1C;IACC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;IAC9B,4EAA4E;IAC5E,6EAA6E;IAC7E,2EAA2E;IAC3E,wBAAwB;IACxB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACZ,OAAO;YACL,2GAA2G;SAC5G,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAClC,MAAM,WAAW,GACf,MAAM,CAAC,eAAe,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC;QACrC,CAAC,CAAC;YACE,iCAAiC,MAAM,CAAC,eAAe,qBAAqB;YAC5E,EAAE;SACH;QACH,CAAC,CAAC,EAAE,CAAC;IACT,OAAO;QACL,eAAe,CAAC,oBAAoB,MAAM,+KAA+K;QACzN,EAAE;QACF,GAAG,WAAW;QACd,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;YACxD,CAAC,CAAC;gBACE,mMAAmM;gBACnM,EAAE;aACH;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CACjB,CAAC,IAAI,EAAE,EAAE,CACP,OAAO,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,UAAU,EAAE;YACzC,CAAC,IAAI,CAAC,MAAM;gBACV,CAAC,CAAC,kBAAkB,IAAI,CAAC,MAAM,CAAC,IAAI,gBAAgB,IAAI,CAAC,MAAM,CAAC,UAAU,UAAU,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG;gBACvG,CAAC,CAAC,EAAE,CAAC;YACP,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,uBAAuB,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACpE;QACD,EAAE;QACF,sSAAsS;KACvS,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,cAAsB;IAC1D,OAAO,CACL,0EAA0E;QAC1E,8CAA8C,cAAc,OAAO;QACnE,yEAAyE,CAC1E,CAAC;AACJ,CAAC"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * One landing-gate ROLE, with the npm script names that declare it in
3
+ * preference order — the same ordering rule `testCommand.ts` states: generic /
4
+ * widely-adopted names first, framework- or repo-specific aliases last, and
5
+ * `pickScript` returns the FIRST match.
6
+ */
7
+ export interface LandingGateRole {
8
+ /**
9
+ * The gate's role. Named so a report, a test and a prompt can all say WHICH
10
+ * gate a repo contributes without parsing its script name.
11
+ */
12
+ readonly role: "guard" | "deadcode" | "depgraph" | "glossary" | "lint";
13
+ /**
14
+ * One line, rendered wherever the landing gate is described to a host — the
15
+ * gate's own statement of what it refuses, never restated at the call site.
16
+ */
17
+ readonly refuses: string;
18
+ /** npm script names declaring this role, most generic first. */
19
+ readonly scripts: readonly string[];
20
+ }
21
+ /**
22
+ * The declared landing-gate vocabulary.
23
+ *
24
+ * ORDER IS THE EMITTED ORDER, and the four roles are independent: a repo
25
+ * declaring only `check:lint` contributes exactly one command. Sorted by role
26
+ * name (deadcode, depgraph, guard, lint) as the array literal, so the emitted
27
+ * list is content-stable and a re-derivation cannot churn the workload digest
28
+ * (CLAUDE.md, "Extractors emit stable, content-derived array order").
29
+ *
30
+ * `guard` is separate from the three cheap gates because it is the EXPENSIVE
31
+ * one: the repository's own cross-cutting test suite. It is here because a
32
+ * guard suite is precisely the gate a module-scoped `targeted_commands` entry
33
+ * cannot stand in for — `tests/shared/audit-tools-path-guard.test.ts` is the
34
+ * live example.
35
+ */
36
+ export declare const LANDING_GATE_SCRIPT_NAMES: readonly LandingGateRole[];
37
+ /**
38
+ * The repository's landing gates, as runnable command strings, in the
39
+ * vocabulary's declared role order.
40
+ *
41
+ * Pure over `(root)` and deterministic: reads one manifest, emits a
42
+ * content-stable sorted-by-role list, spawns nothing.
43
+ */
44
+ export declare function discoverLandingGates(root: string): string[];
45
+ /**
46
+ * Every invariant id a value DECLARES anywhere it can be nested — a module
47
+ * contract's `invariants`, an obligation slug, or any other string a producer
48
+ * hangs an id on. Walks objects and arrays rather than reading one named field,
49
+ * because a contract's shape is the producer's, not this predicate's.
50
+ *
51
+ * Returns the SET of ids, not a boolean, because the caller has to subtract the
52
+ * ids the glossary already documents: mentioning an existing id is not coining
53
+ * one (see {@link withGlossaryScope}).
54
+ */
55
+ export declare function declaredInvariantIds(value: unknown): Set<string>;
56
+ /**
57
+ * Whether a value declares ANY invariant id — the boolean form of
58
+ * {@link declaredInvariantIds}, for a caller that only needs the predicate.
59
+ */
60
+ export declare function declaresInvariantId(value: unknown): boolean;
61
+ /**
62
+ * The one-line statement of what a landing gate command REFUSES, or `null` when
63
+ * the command was not declared as one.
64
+ *
65
+ * Rendered wherever a host is told what its required tests cover, so the
66
+ * sentence stating a gate's authority is written once, beside the vocabulary
67
+ * that declares the gate. `null` for an item's own `targeted_commands`, which
68
+ * are not landing gates and carry no vocabulary entry.
69
+ */
70
+ export declare function landingGateRefusal(command: string): string | null;
71
+ /**
72
+ * The glossary document a scope must be able to write when it coins an
73
+ * invariant id. Repo-relative, so it composes with `allowed_files` unchanged.
74
+ *
75
+ * ⚠ This is THIS repository's convention, and it is only ever consulted as a
76
+ * CANDIDATE. `remediate-code` runs against arbitrary repositories, so the path
77
+ * being a constant is not a claim that the document exists — a target root that
78
+ * has no such file gets NO widening at all (a content fact, checked by
79
+ * {@link withGlossaryScope}). A tool that widened on the NAME alone would hand
80
+ * an item write scope over a file its repository does not have.
81
+ */
82
+ export declare const GLOSSARY_DOCUMENT_PATH = "docs/glossary-ids.md";
83
+ /**
84
+ * Widen a work item's write scope so an item that COINS an invariant id can
85
+ * actually satisfy the id-glossary gate.
86
+ *
87
+ * ── THE FRICTION THIS CLOSES ─────────────────────────────────────────────────
88
+ *
89
+ * The glossary document is outside every module's `file_scope`; the glossary
90
+ * gate scans `src/` for `INV-*` ids and fails on one with no glossary row. So
91
+ * an item that coins an id in `src/` is STRUCTURALLY UNABLE to satisfy the
92
+ * gate: the fix is a glossary edit its write scope forbids, and the red lands
93
+ * silently, discovered by the NEXT item's worker. It happened twice in one
94
+ * session (`INV-SSP-DEFERRED-SET-REPORTED` at CP-NODE-10, and the id the
95
+ * charter-delta parser coined at CP-NODE-18, since retired with that parser) —
96
+ * the "tool_should_decide" friction in `docs/backlog/open-bugs.md`.
97
+ *
98
+ * ── THREE CONDITIONS, EACH NARROWING ─────────────────────────────────────────
99
+ *
100
+ * 1. The document must EXIST in the target root. The path is this
101
+ * repository's convention; an arbitrary target repo may keep none, and
102
+ * widening for a document that is not there grants scope over nothing.
103
+ * 2. The contract must declare at least one id the document does NOT already
104
+ * carry. A contract that merely MENTIONS `INV-COVERAGE` — a seam adjustment
105
+ * citing an existing invariant, a prose reference — coins nothing, and
106
+ * widening for it hands the item a document it has no business editing.
107
+ * Only an id with no row yet is a COIN, because only that id needs one.
108
+ * 3. The scope must not already carry the path (idempotence).
109
+ *
110
+ * The gate itself is bound separately, at the CLOSE — scope without the gate
111
+ * would leave the red silent; the gate without scope would turn it into a
112
+ * dead-end refusal. Both halves are the one decision.
113
+ *
114
+ * Deterministic, stable-ordered and idempotent: a scope that already carries
115
+ * the path is returned unchanged.
116
+ */
117
+ export declare function withGlossaryScope(root: string, allowedFiles: readonly string[], declaredIds: ReadonlySet<string>): string[];
118
+ //# sourceMappingURL=landingGates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"landingGates.d.ts","sourceRoot":"","sources":["../../../src/shared/tooling/landingGates.ts"],"names":[],"mappings":"AAuEA;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;IACvE;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAAS,eAAe,EAkC/D,CAAC;AAyBF;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAc3D;AAeD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAkBhE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE3D;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOjE;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,yBAAyB,CAAC;AAyB7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,GAC/B,MAAM,EAAE,CAQV"}
@@ -0,0 +1,314 @@
1
+ // sites-pinned: tests/shared/landing-gates.test.ts, tests/remediate/host-handoff.test.ts
2
+ // The discovery/vocabulary/scope rules are pinned by the shared suite; the
3
+ // per-item wiring that remains (the glossary write scope) is pinned by the
4
+ // host-handoff suite's "landing gates" block, and the close leg by
5
+ // tests/remediate/landing-gates-close.test.ts.
6
+ //
7
+ // The repository's LANDING GATES: the tree-wide guard suites and the cheap
8
+ // release gates a LANDING must run, discovered from the target repository's own
9
+ // declared command surface.
10
+ //
11
+ // ── WHY THIS EXISTS ──────────────────────────────────────────────────────────
12
+ //
13
+ // The per-item required tests were the block's `targeted_commands`, which are
14
+ // MODULE-SCOPED: a block that edits one module declares the command that
15
+ // exercises that module. Three remediation landings reddened CI after green
16
+ // per-item runs, each on a gate no per-item command covers —
17
+ //
18
+ // • a hand-restated `.audit-tools` literal caught only by the tree-wide
19
+ // `tests/shared/audit-tools-path-guard.test.ts` (`1e7a4a54` fixed it),
20
+ // • a case-folding assertion true only on a case-insensitive volume
21
+ // (`011c6ae0`), and
22
+ // • an intra-`src/shared` import cycle a reviewer graded minor that
23
+ // `check:depgraph` refuses (`b5963957`).
24
+ //
25
+ // ── WHERE THE GATES RUN: THE CLOSE, NOT THE ITEM ─────────────────────────────
26
+ //
27
+ // The first attempt folded these gates into EVERY work item's `required_tests`.
28
+ // That was wrong, and the way it was wrong is worth keeping: these gates state
29
+ // facts about the WHOLE tree, so an item that adds an export whose only consumer
30
+ // lands in a LATER item could not pass, and no edit inside its own scope could
31
+ // make it pass; another item's fault could refuse this one too. A gate that
32
+ // GUESSES at a boundary owned by something else is moved to the boundary that
33
+ // owns it (CLAUDE.md, *A gate states the boundary it OWNS*) — and the merged tree
34
+ // exists only at the CLOSE. So the loop is: this module DISCOVERS the gates, and
35
+ // `verifyLandingGates` (`src/remediate/phases/closeVerifyLandingGates.ts`) runs
36
+ // them once each at close and folds the result into `fullyGreen`.
37
+ //
38
+ // What stays per-item is the one scope fact a prepare owns: a block that coins
39
+ // an invariant id needs the glossary document in its write scope, or the gate is
40
+ // unsatisfiable for the item that coins it (`withGlossaryScope` below).
41
+ //
42
+ // ── WHY IT IS DISCOVERED, NOT BAKED IN ───────────────────────────────────────
43
+ //
44
+ // `remediate-code` runs against ARBITRARY repositories. `check:depgraph`,
45
+ // `check:deadcode` and `check:lint` are THIS repository's script names; a
46
+ // language-neutral tool that hardcoded them would demand a target repo declare
47
+ // audit-tools' own private vocabulary, and would run the wrong thing (or
48
+ // nothing) everywhere else. So the gates are read from the target repo's
49
+ // `package.json` scripts through a DECLARED, preference-ordered vocabulary —
50
+ // exactly the shape `discoverProjectCommands` (./testCommand.ts) already uses
51
+ // for test/e2e/build/lint, so a "discover a project command by role" question
52
+ // has one answer in this codebase rather than two.
53
+ //
54
+ // Degrade-to-empty is the contract: a repo with no `package.json`, a malformed
55
+ // one, or one declaring none of these roles contributes NO landing gate. A
56
+ // missing gate narrows the landing command set; it never throws and never
57
+ // invents a command the repository did not declare.
58
+ //
59
+ // ⚠ WHAT "NO GATE DISCOVERED" DOES AND DOES NOT MEAN. Discovery reads the target
60
+ // repository's `package.json` `scripts` map and NOTHING ELSE — there is no
61
+ // `Makefile`, `Cargo.toml`, `build.gradle` or shell-script arm, and none is
62
+ // planned, because no portable way exists to read another build system's target
63
+ // names and a guessed target would run the wrong thing. So "no landing gate" is
64
+ // a fact about the manifest, never a claim that the repository has no tree-wide
65
+ // check: a repository with another build system gets NO landing gate at all, and
66
+ // the close report says so in one line rather than silently reporting a green
67
+ // gate set. A gate is only ever ADDED by the target declaring it.
68
+ import { existsSync, readFileSync } from "node:fs";
69
+ import { join } from "node:path";
70
+ import { compareCodeUnits } from "../compareCodeUnits.js";
71
+ /**
72
+ * The declared landing-gate vocabulary.
73
+ *
74
+ * ORDER IS THE EMITTED ORDER, and the four roles are independent: a repo
75
+ * declaring only `check:lint` contributes exactly one command. Sorted by role
76
+ * name (deadcode, depgraph, guard, lint) as the array literal, so the emitted
77
+ * list is content-stable and a re-derivation cannot churn the workload digest
78
+ * (CLAUDE.md, "Extractors emit stable, content-derived array order").
79
+ *
80
+ * `guard` is separate from the three cheap gates because it is the EXPENSIVE
81
+ * one: the repository's own cross-cutting test suite. It is here because a
82
+ * guard suite is precisely the gate a module-scoped `targeted_commands` entry
83
+ * cannot stand in for — `tests/shared/audit-tools-path-guard.test.ts` is the
84
+ * live example.
85
+ */
86
+ export const LANDING_GATE_SCRIPT_NAMES = [
87
+ {
88
+ role: "deadcode",
89
+ refuses: "an exported symbol with zero consumers anywhere, including tests",
90
+ scripts: ["check:deadcode", "check:dead-code", "deadcode", "knip"],
91
+ },
92
+ {
93
+ role: "depgraph",
94
+ refuses: "a module-graph violation — an import cycle, or an upward import out of the shared base layer",
95
+ scripts: ["check:depgraph", "check:dep-graph", "depgraph", "depcruise"],
96
+ },
97
+ {
98
+ role: "glossary",
99
+ refuses: "an opaque identifier used in the source tree that no glossary row documents — the id-glossary gate",
100
+ scripts: [
101
+ "check:invariant-glossary",
102
+ "check:glossary",
103
+ "check:glossary-ids",
104
+ "glossary:check",
105
+ ],
106
+ },
107
+ {
108
+ role: "guard",
109
+ refuses: "a tree-wide invariant the repository's cross-cutting suites assert and no module-scoped command covers",
110
+ scripts: ["verify:guards", "test:guards", "guards", "test:guard"],
111
+ },
112
+ {
113
+ role: "lint",
114
+ refuses: "a lint violation anywhere in the tree",
115
+ scripts: ["check:lint", "lint", "lint:check"],
116
+ },
117
+ ];
118
+ function readPackageScripts(root) {
119
+ const packageJsonPath = join(root, "package.json");
120
+ if (!existsSync(packageJsonPath))
121
+ return null;
122
+ try {
123
+ const parsed = JSON.parse(readFileSync(packageJsonPath, "utf8"));
124
+ if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed))
125
+ return null;
126
+ const scripts = parsed.scripts;
127
+ return scripts !== null && typeof scripts === "object" && !Array.isArray(scripts)
128
+ ? scripts
129
+ : null;
130
+ }
131
+ catch {
132
+ // Unreadable / malformed package.json: no landing gates. A prepare must not
133
+ // fail because a manifest it does not own is malformed — the same
134
+ // degrade-to-empty rule `discoverProjectCommands` follows.
135
+ return null;
136
+ }
137
+ }
138
+ /** The `npm run <script>` command for a declared script name. */
139
+ function npmRun(script) {
140
+ return `npm run ${script}`;
141
+ }
142
+ /**
143
+ * The repository's landing gates, as runnable command strings, in the
144
+ * vocabulary's declared role order.
145
+ *
146
+ * Pure over `(root)` and deterministic: reads one manifest, emits a
147
+ * content-stable sorted-by-role list, spawns nothing.
148
+ */
149
+ export function discoverLandingGates(root) {
150
+ const scripts = readPackageScripts(root);
151
+ if (scripts === null)
152
+ return [];
153
+ const commands = [];
154
+ for (const gate of LANDING_GATE_SCRIPT_NAMES) {
155
+ for (const name of gate.scripts) {
156
+ const body = scripts[name];
157
+ if (typeof body === "string" && body.trim().length > 0) {
158
+ commands.push(npmRun(name));
159
+ break;
160
+ }
161
+ }
162
+ }
163
+ return commands.sort(compareCodeUnits);
164
+ }
165
+ /**
166
+ * The opaque-identifier family the id-glossary gate scans the source tree for.
167
+ * Anchored to a word boundary at the end too, so a short namespace does not
168
+ * match inside a longer token; and to `INV-` + an uppercase letter start, so a
169
+ * lowercase test-family id (`INV-remediate-state-01`) is not read as a
170
+ * production namespace — the same split `scripts/check-invariant-glossary.mjs`
171
+ * draws.
172
+ *
173
+ * GLOBAL on purpose: {@link declaredInvariantIds} collects EVERY id in a value,
174
+ * so the lastIndex state a `/g` regex carries is reset before each use there.
175
+ */
176
+ const INVARIANT_ID = /\bINV-[A-Z][A-Z0-9]*(?:-[A-Z][A-Z0-9]*)*\b/gu;
177
+ /**
178
+ * Every invariant id a value DECLARES anywhere it can be nested — a module
179
+ * contract's `invariants`, an obligation slug, or any other string a producer
180
+ * hangs an id on. Walks objects and arrays rather than reading one named field,
181
+ * because a contract's shape is the producer's, not this predicate's.
182
+ *
183
+ * Returns the SET of ids, not a boolean, because the caller has to subtract the
184
+ * ids the glossary already documents: mentioning an existing id is not coining
185
+ * one (see {@link withGlossaryScope}).
186
+ */
187
+ export function declaredInvariantIds(value) {
188
+ const found = new Set();
189
+ const walk = (node) => {
190
+ if (typeof node === "string") {
191
+ INVARIANT_ID.lastIndex = 0;
192
+ for (const match of node.matchAll(INVARIANT_ID))
193
+ found.add(match[0]);
194
+ return;
195
+ }
196
+ if (Array.isArray(node)) {
197
+ for (const entry of node)
198
+ walk(entry);
199
+ return;
200
+ }
201
+ if (node !== null && typeof node === "object") {
202
+ for (const entry of Object.values(node))
203
+ walk(entry);
204
+ }
205
+ };
206
+ walk(value);
207
+ return found;
208
+ }
209
+ /**
210
+ * Whether a value declares ANY invariant id — the boolean form of
211
+ * {@link declaredInvariantIds}, for a caller that only needs the predicate.
212
+ */
213
+ export function declaresInvariantId(value) {
214
+ return declaredInvariantIds(value).size > 0;
215
+ }
216
+ /**
217
+ * The one-line statement of what a landing gate command REFUSES, or `null` when
218
+ * the command was not declared as one.
219
+ *
220
+ * Rendered wherever a host is told what its required tests cover, so the
221
+ * sentence stating a gate's authority is written once, beside the vocabulary
222
+ * that declares the gate. `null` for an item's own `targeted_commands`, which
223
+ * are not landing gates and carry no vocabulary entry.
224
+ */
225
+ export function landingGateRefusal(command) {
226
+ for (const gate of LANDING_GATE_SCRIPT_NAMES) {
227
+ if (gate.scripts.some((name) => npmRun(name) === command)) {
228
+ return `\`${command}\` — refuses ${gate.refuses}`;
229
+ }
230
+ }
231
+ return null;
232
+ }
233
+ /**
234
+ * The glossary document a scope must be able to write when it coins an
235
+ * invariant id. Repo-relative, so it composes with `allowed_files` unchanged.
236
+ *
237
+ * ⚠ This is THIS repository's convention, and it is only ever consulted as a
238
+ * CANDIDATE. `remediate-code` runs against arbitrary repositories, so the path
239
+ * being a constant is not a claim that the document exists — a target root that
240
+ * has no such file gets NO widening at all (a content fact, checked by
241
+ * {@link withGlossaryScope}). A tool that widened on the NAME alone would hand
242
+ * an item write scope over a file its repository does not have.
243
+ */
244
+ export const GLOSSARY_DOCUMENT_PATH = "docs/glossary-ids.md";
245
+ /**
246
+ * The invariant ids the glossary document at `root` already carries, or `null`
247
+ * when the document does not exist there.
248
+ *
249
+ * `null` and an empty set are DIFFERENT answers, and collapsing them is the bug
250
+ * this return type exists to prevent: absent means this repository keeps no
251
+ * glossary document, so nothing can be coined against it and no scope widens;
252
+ * present-and-empty means every id in the contract is new.
253
+ */
254
+ function documentedInvariantIds(root) {
255
+ const documentPath = join(root, ...GLOSSARY_DOCUMENT_PATH.split("/"));
256
+ if (!existsSync(documentPath))
257
+ return null;
258
+ try {
259
+ return declaredInvariantIds(readFileSync(documentPath, "utf8"));
260
+ }
261
+ catch {
262
+ // Unreadable glossary: "cannot tell which ids are documented". The EMPTY
263
+ // set is the conservative answer — it widens for any declared id, granting
264
+ // only a scope an item's own contract asked for, whereas returning `null`
265
+ // turns a read error into the silent dead-end this function removes.
266
+ return new Set();
267
+ }
268
+ }
269
+ /**
270
+ * Widen a work item's write scope so an item that COINS an invariant id can
271
+ * actually satisfy the id-glossary gate.
272
+ *
273
+ * ── THE FRICTION THIS CLOSES ─────────────────────────────────────────────────
274
+ *
275
+ * The glossary document is outside every module's `file_scope`; the glossary
276
+ * gate scans `src/` for `INV-*` ids and fails on one with no glossary row. So
277
+ * an item that coins an id in `src/` is STRUCTURALLY UNABLE to satisfy the
278
+ * gate: the fix is a glossary edit its write scope forbids, and the red lands
279
+ * silently, discovered by the NEXT item's worker. It happened twice in one
280
+ * session (`INV-SSP-DEFERRED-SET-REPORTED` at CP-NODE-10, and the id the
281
+ * charter-delta parser coined at CP-NODE-18, since retired with that parser) —
282
+ * the "tool_should_decide" friction in `docs/backlog/open-bugs.md`.
283
+ *
284
+ * ── THREE CONDITIONS, EACH NARROWING ─────────────────────────────────────────
285
+ *
286
+ * 1. The document must EXIST in the target root. The path is this
287
+ * repository's convention; an arbitrary target repo may keep none, and
288
+ * widening for a document that is not there grants scope over nothing.
289
+ * 2. The contract must declare at least one id the document does NOT already
290
+ * carry. A contract that merely MENTIONS `INV-COVERAGE` — a seam adjustment
291
+ * citing an existing invariant, a prose reference — coins nothing, and
292
+ * widening for it hands the item a document it has no business editing.
293
+ * Only an id with no row yet is a COIN, because only that id needs one.
294
+ * 3. The scope must not already carry the path (idempotence).
295
+ *
296
+ * The gate itself is bound separately, at the CLOSE — scope without the gate
297
+ * would leave the red silent; the gate without scope would turn it into a
298
+ * dead-end refusal. Both halves are the one decision.
299
+ *
300
+ * Deterministic, stable-ordered and idempotent: a scope that already carries
301
+ * the path is returned unchanged.
302
+ */
303
+ export function withGlossaryScope(root, allowedFiles, declaredIds) {
304
+ if (declaredIds.size === 0 || allowedFiles.includes(GLOSSARY_DOCUMENT_PATH)) {
305
+ return [...allowedFiles];
306
+ }
307
+ const documented = documentedInvariantIds(root);
308
+ if (documented === null)
309
+ return [...allowedFiles];
310
+ if (![...declaredIds].some((id) => !documented.has(id)))
311
+ return [...allowedFiles];
312
+ return [...allowedFiles, GLOSSARY_DOCUMENT_PATH].sort(compareCodeUnits);
313
+ }
314
+ //# sourceMappingURL=landingGates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"landingGates.js","sourceRoot":"","sources":["../../../src/shared/tooling/landingGates.ts"],"names":[],"mappings":"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"}
@@ -73,4 +73,20 @@ export declare function runAdmittedProjectE2eCommand(command: string[], root: st
73
73
  maxCapturedOutput?: number;
74
74
  sigkillGraceMs?: number;
75
75
  }): Promise<ProjectTestAdmissionOutcome>;
76
+ /**
77
+ * Run one of the repository's discovered LANDING GATES under the same gate.
78
+ *
79
+ * The landing-gate leg runs at the CLOSE, on the merged tree — see
80
+ * `verifyLandingGates` in `src/remediate/phases/closeVerifyLandingGates.ts`. It
81
+ * is a different role from test/e2e only in what discovery emits: one vector
82
+ * for those, a set of up to five gate commands for this. The admission rule and
83
+ * every spawn bound are the SAME, which is the point — a gate is a discovered
84
+ * project command like any other, and adding a second spawn path for it would
85
+ * be a second place for the shell-safety and output-cap rules to drift.
86
+ */
87
+ export declare function runAdmittedProjectLandingGateCommand(command: string[], root: string, options?: {
88
+ timeoutMs?: number;
89
+ maxCapturedOutput?: number;
90
+ sigkillGraceMs?: number;
91
+ }): Promise<ProjectTestAdmissionOutcome>;
76
92
  //# sourceMappingURL=projectTestAdmission.d.ts.map