@sdd-method/sdd-cli 0.19.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/README.md +30 -10
  2. package/dist/index.js +3 -3
  3. package/dist/index.js.map +1 -1
  4. package/dist/lib/agent-harness.d.ts +20 -0
  5. package/dist/lib/agent-harness.d.ts.map +1 -0
  6. package/dist/lib/agent-harness.js +28 -0
  7. package/dist/lib/agent-harness.js.map +1 -0
  8. package/dist/lib/briefing/index.d.ts +15 -0
  9. package/dist/lib/briefing/index.d.ts.map +1 -0
  10. package/dist/lib/briefing/index.js +13 -0
  11. package/dist/lib/briefing/index.js.map +1 -0
  12. package/dist/lib/briefing/render.d.ts +57 -0
  13. package/dist/lib/briefing/render.d.ts.map +1 -0
  14. package/dist/lib/briefing/render.js +112 -0
  15. package/dist/lib/briefing/render.js.map +1 -0
  16. package/dist/lib/briefing/variables.d.ts +49 -0
  17. package/dist/lib/briefing/variables.d.ts.map +1 -0
  18. package/dist/lib/briefing/variables.js +92 -0
  19. package/dist/lib/briefing/variables.js.map +1 -0
  20. package/dist/lib/catalogue/aggregate.d.ts +19 -0
  21. package/dist/lib/catalogue/aggregate.d.ts.map +1 -1
  22. package/dist/lib/catalogue/aggregate.js +88 -0
  23. package/dist/lib/catalogue/aggregate.js.map +1 -1
  24. package/dist/lib/catalogue/build.d.ts.map +1 -1
  25. package/dist/lib/catalogue/build.js +78 -4
  26. package/dist/lib/catalogue/build.js.map +1 -1
  27. package/dist/lib/catalogue/builders/c4-containers.d.ts.map +1 -1
  28. package/dist/lib/catalogue/builders/c4-containers.js +15 -0
  29. package/dist/lib/catalogue/builders/c4-containers.js.map +1 -1
  30. package/dist/lib/catalogue/builders/capabilities.d.ts.map +1 -1
  31. package/dist/lib/catalogue/builders/capabilities.js +18 -4
  32. package/dist/lib/catalogue/builders/capabilities.js.map +1 -1
  33. package/dist/lib/catalogue/builders/capability-spec-walker.d.ts +55 -0
  34. package/dist/lib/catalogue/builders/capability-spec-walker.d.ts.map +1 -0
  35. package/dist/lib/catalogue/builders/capability-spec-walker.js +99 -0
  36. package/dist/lib/catalogue/builders/capability-spec-walker.js.map +1 -0
  37. package/dist/lib/catalogue/builders/capability-spec.d.ts +51 -0
  38. package/dist/lib/catalogue/builders/capability-spec.d.ts.map +1 -0
  39. package/dist/lib/catalogue/builders/capability-spec.js +276 -0
  40. package/dist/lib/catalogue/builders/capability-spec.js.map +1 -0
  41. package/dist/lib/catalogue/builders/contracts.d.ts.map +1 -1
  42. package/dist/lib/catalogue/builders/contracts.js +88 -41
  43. package/dist/lib/catalogue/builders/contracts.js.map +1 -1
  44. package/dist/lib/catalogue/builders/feature-subscription-channels.d.ts +12 -0
  45. package/dist/lib/catalogue/builders/feature-subscription-channels.d.ts.map +1 -0
  46. package/dist/lib/catalogue/builders/feature-subscription-channels.js +197 -0
  47. package/dist/lib/catalogue/builders/feature-subscription-channels.js.map +1 -0
  48. package/dist/lib/catalogue/builders/index.d.ts +8 -0
  49. package/dist/lib/catalogue/builders/index.d.ts.map +1 -1
  50. package/dist/lib/catalogue/builders/index.js +4 -0
  51. package/dist/lib/catalogue/builders/index.js.map +1 -1
  52. package/dist/lib/catalogue/builders/product-platform-dependencies.d.ts +10 -0
  53. package/dist/lib/catalogue/builders/product-platform-dependencies.d.ts.map +1 -0
  54. package/dist/lib/catalogue/builders/product-platform-dependencies.js +155 -0
  55. package/dist/lib/catalogue/builders/product-platform-dependencies.js.map +1 -0
  56. package/dist/lib/catalogue/builders/service-contract-consumes.d.ts +24 -0
  57. package/dist/lib/catalogue/builders/service-contract-consumes.d.ts.map +1 -0
  58. package/dist/lib/catalogue/builders/service-contract-consumes.js +173 -0
  59. package/dist/lib/catalogue/builders/service-contract-consumes.js.map +1 -0
  60. package/dist/lib/catalogue/canonical-schema.yaml +100 -5
  61. package/dist/lib/catalogue/service-contract-aliases-loader.d.ts +60 -0
  62. package/dist/lib/catalogue/service-contract-aliases-loader.d.ts.map +1 -0
  63. package/dist/lib/catalogue/service-contract-aliases-loader.js +109 -0
  64. package/dist/lib/catalogue/service-contract-aliases-loader.js.map +1 -0
  65. package/dist/lib/catalogue/traceability-loader.d.ts +17 -0
  66. package/dist/lib/catalogue/traceability-loader.d.ts.map +1 -1
  67. package/dist/lib/catalogue/traceability-loader.js +6 -0
  68. package/dist/lib/catalogue/traceability-loader.js.map +1 -1
  69. package/dist/lib/generate-briefing/index.d.ts +22 -0
  70. package/dist/lib/generate-briefing/index.d.ts.map +1 -0
  71. package/dist/lib/generate-briefing/index.js +77 -0
  72. package/dist/lib/generate-briefing/index.js.map +1 -0
  73. package/dist/lib/hooks-seed/copilot.d.ts +93 -0
  74. package/dist/lib/hooks-seed/copilot.d.ts.map +1 -0
  75. package/dist/lib/hooks-seed/copilot.js +167 -0
  76. package/dist/lib/hooks-seed/copilot.js.map +1 -0
  77. package/dist/lib/hooks-seed/index.d.ts +4 -0
  78. package/dist/lib/hooks-seed/index.d.ts.map +1 -1
  79. package/dist/lib/hooks-seed/index.js +2 -0
  80. package/dist/lib/hooks-seed/index.js.map +1 -1
  81. package/dist/lib/hooks-seed/lifecycle-mapping.d.ts +12 -0
  82. package/dist/lib/hooks-seed/lifecycle-mapping.d.ts.map +1 -0
  83. package/dist/lib/hooks-seed/lifecycle-mapping.js +28 -0
  84. package/dist/lib/hooks-seed/lifecycle-mapping.js.map +1 -0
  85. package/dist/lib/init/index.d.ts +6 -4
  86. package/dist/lib/init/index.d.ts.map +1 -1
  87. package/dist/lib/init/index.js +5 -26
  88. package/dist/lib/init/index.js.map +1 -1
  89. package/dist/lib/init/platform.d.ts +9 -0
  90. package/dist/lib/init/platform.d.ts.map +1 -1
  91. package/dist/lib/init/platform.js +8 -2
  92. package/dist/lib/init/platform.js.map +1 -1
  93. package/dist/lib/sync/briefing-merge.d.ts +34 -0
  94. package/dist/lib/sync/briefing-merge.d.ts.map +1 -0
  95. package/dist/lib/sync/briefing-merge.js +82 -0
  96. package/dist/lib/sync/briefing-merge.js.map +1 -0
  97. package/dist/lib/sync/copilot-hooks-merge.d.ts +30 -0
  98. package/dist/lib/sync/copilot-hooks-merge.d.ts.map +1 -0
  99. package/dist/lib/sync/copilot-hooks-merge.js +96 -0
  100. package/dist/lib/sync/copilot-hooks-merge.js.map +1 -0
  101. package/dist/lib/sync/index.d.ts +8 -3
  102. package/dist/lib/sync/index.d.ts.map +1 -1
  103. package/dist/lib/sync/index.js +63 -23
  104. package/dist/lib/sync/index.js.map +1 -1
  105. package/dist/verbs/generate-briefing.d.ts +3 -0
  106. package/dist/verbs/generate-briefing.d.ts.map +1 -0
  107. package/dist/verbs/generate-briefing.js +28 -0
  108. package/dist/verbs/generate-briefing.js.map +1 -0
  109. package/dist/verbs/init.d.ts.map +1 -1
  110. package/dist/verbs/init.js +11 -8
  111. package/dist/verbs/init.js.map +1 -1
  112. package/dist/verbs/sync.d.ts.map +1 -1
  113. package/dist/verbs/sync.js +11 -4
  114. package/dist/verbs/sync.js.map +1 -1
  115. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/generate-briefing/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH,OAAO,EAEL,mBAAmB,EACnB,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAI7B,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,uBAAuB,EAC7B,MAAM,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAA2C,GACpE,OAAO,CAAC,sBAAsB,CAAC,CAyEjC;AAGD,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * `sdd-cli generate-briefing` — regenerate `agent-instructions.md` +
3
+ * the harness wrapper for an existing SDD repo without pulling a
4
+ * bundle. Reuses the briefing-merge sync helpers so behaviour matches
5
+ * what `sdd-cli sync` writes (the templates already on disk are the
6
+ * source of truth).
7
+ *
8
+ * Replaces the v0.3.0 `generate-claude-md` verb whose rich-content
9
+ * output diverges from the ADR 0148 thin-pointer shape.
10
+ */
11
+ import { access } from "node:fs/promises";
12
+ import { join } from "node:path";
13
+ import { AGENT_INSTRUCTIONS_REL_PATH, BRIEFING_TEMPLATE_ROOT, harnessWrapperOutputPath, } from "../briefing/index.js";
14
+ import { syncBriefingFiles } from "../sync/briefing-merge.js";
15
+ import { DEFAULT_AGENT_HARNESS, resolveAgentHarness, } from "../agent-harness.js";
16
+ import { readRepoKind } from "../repo-kind.js";
17
+ import { readLockFile } from "../lock-file.js";
18
+ export async function runGenerateBriefing(opts, stdout = (line) => process.stdout.write(line)) {
19
+ const repoKind = await readRepoKind(opts.targetDir);
20
+ if (repoKind === null) {
21
+ stdout(fail(`Not an SDD repo: no .sdd-repo-kind marker in ${opts.targetDir}`));
22
+ return { exitCode: 1 };
23
+ }
24
+ const lock = await readLockFile(opts.targetDir);
25
+ if (!lock) {
26
+ stdout(fail(`Cannot regenerate briefing: method-baseline.lock missing at ${opts.targetDir}. Run sdd-cli sync first.`));
27
+ return { exitCode: 1 };
28
+ }
29
+ const forwardBase = lock.bundles.find((b) => b.isForwardBase);
30
+ if (!forwardBase) {
31
+ stdout(fail(`Cannot regenerate briefing: no forward-base bundle in method-baseline.lock at ${opts.targetDir}.`));
32
+ return { exitCode: 1 };
33
+ }
34
+ // Templates ship in the bundle and land here on sync. Refusing
35
+ // up-front when they're absent gives a clearer error than the
36
+ // graceful skip downstream.
37
+ const templatesPresent = await fileExists(join(opts.targetDir, BRIEFING_TEMPLATE_ROOT, "agent-instructions.md.hbs"));
38
+ if (!templatesPresent) {
39
+ stdout(fail(`Briefing templates not found under ${BRIEFING_TEMPLATE_ROOT}/ — sync against a baseline that ships ADR 0148 templates first.`));
40
+ return { exitCode: 1 };
41
+ }
42
+ const result = await syncBriefingFiles({
43
+ targetRepo: opts.targetDir,
44
+ repoKind,
45
+ baselineVersion: forwardBase.bundleVersion,
46
+ agentHarness: opts.agentHarness ?? DEFAULT_AGENT_HARNESS,
47
+ allowOverwrite: opts.allowOverwrite,
48
+ });
49
+ if (result.refused) {
50
+ stdout(fail(`${result.refused} has adopter edits outside the method-managed markers. Re-run with --allow-overwrite to replace the file.`));
51
+ return { exitCode: 1 };
52
+ }
53
+ for (const line of result.log)
54
+ stdout(info(line));
55
+ if (result.log.length === 0) {
56
+ stdout(info(`Briefing files already match templates — no changes (${AGENT_INSTRUCTIONS_REL_PATH}, ${harnessWrapperOutputPath(opts.agentHarness ?? DEFAULT_AGENT_HARNESS)}).`));
57
+ }
58
+ return { exitCode: 0 };
59
+ }
60
+ // Re-export so the verb layer can use the validator without an extra import line.
61
+ export { resolveAgentHarness };
62
+ async function fileExists(path) {
63
+ try {
64
+ await access(path);
65
+ return true;
66
+ }
67
+ catch {
68
+ return false;
69
+ }
70
+ }
71
+ function info(msg) {
72
+ return `[INFO] ${msg}\n`;
73
+ }
74
+ function fail(msg) {
75
+ return `[FAIL] ${msg}\n`;
76
+ }
77
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/generate-briefing/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Builders + drift detection for the method-managed GitHub Copilot CLI
3
+ * hooks, per `docs/method/methods/hook-contracts.md` (Hook 1, Hook 2)
4
+ * and the portable contracts in `hook-portable-contract-schema.yaml`.
5
+ *
6
+ * The Copilot CLI surface differs from Claude Code in three ways
7
+ * (per ADR 0141 §4.3 + hook-contracts.md):
8
+ *
9
+ * 1. Hook configs live in per-event JSON files (`.github/hooks/<event>.json`),
10
+ * not a single settings.json.
11
+ * 2. No per-tool matcher — every `preToolUse` hook fires for every
12
+ * tool, with in-script filtering instead.
13
+ * 3. Approval semantic is declarative (`approval: deny-on-nonzero`)
14
+ * rather than exit-code based.
15
+ *
16
+ * Ownership is sentinel-based, same as Claude Code: the `bash` and
17
+ * `powershell` command strings carry `# sdd-method-managed:true`.
18
+ * Adopter-added events in the same `events[]` array lack the sentinel
19
+ * and survive sync.
20
+ */
21
+ import { type PortableLifecycleEventClass } from "./lifecycle-mapping.js";
22
+ /**
23
+ * The shape of one event entry in `.github/hooks/<event>.json`.
24
+ * `command` may be either a single shell string or a per-shell object —
25
+ * we always emit the per-shell object for Windows/PowerShell parity.
26
+ */
27
+ export interface CopilotHookCommand {
28
+ readonly bash: string;
29
+ readonly powershell: string;
30
+ }
31
+ export interface CopilotHookEvent {
32
+ readonly type: string;
33
+ readonly command: CopilotHookCommand;
34
+ readonly timeout_ms?: number;
35
+ readonly approval?: "always-allow" | "deny-on-nonzero";
36
+ }
37
+ export interface CopilotHookFile {
38
+ readonly version: 1;
39
+ readonly events: readonly CopilotHookEvent[];
40
+ readonly [key: string]: unknown;
41
+ }
42
+ export declare function copilotHookFilePath(portable: PortableLifecycleEventClass): string;
43
+ /**
44
+ * Hook 1 — `block-edits-to-method-managed-paths` (pre_tool_use).
45
+ * Copilot CLI has no per-tool matcher, so the script
46
+ * (orchestration/scripts/copilot-method-guard.{sh,ps1}) does the
47
+ * filtering on tool name in addition to the path check. Method-side
48
+ * authors the scripts; we just emit the wiring.
49
+ */
50
+ export declare function buildCopilotPreToolUseEvent(): CopilotHookEvent;
51
+ /**
52
+ * Hook 2 — `validate-adr-structure-on-session-start` (session_start).
53
+ * Output is surfaced as session-baseline context; non-blocking
54
+ * (`approval: always-allow`) to match the portable contract's `warn`
55
+ * exit-code semantic.
56
+ */
57
+ export declare function buildCopilotSessionStartEvent(): CopilotHookEvent;
58
+ /**
59
+ * Method-managed Copilot CLI hook surface. The map is portable-class →
60
+ * `{ filePath, events: [method-managed events to write] }`. The
61
+ * settings-merge pass walks this to render each `.github/hooks/*.json`
62
+ * file with sentinel-based ownership.
63
+ */
64
+ export type CopilotHookSurface = Readonly<Record<PortableLifecycleEventClass, {
65
+ filePath: string;
66
+ events: readonly CopilotHookEvent[];
67
+ }>>;
68
+ export declare function buildMethodManagedCopilotHooks(): Partial<CopilotHookSurface>;
69
+ /**
70
+ * An event entry is method-managed iff its `command.bash` (or
71
+ * `command.powershell`) carries the sentinel.
72
+ */
73
+ export declare function isMethodManagedEvent(event: CopilotHookEvent): boolean;
74
+ export interface CopilotMergeResult {
75
+ readonly file: CopilotHookFile;
76
+ /** True iff a method-managed event differs from incoming or was added. */
77
+ readonly changed: boolean;
78
+ }
79
+ /**
80
+ * Upsert method-managed events into an existing hook file. Adopter-
81
+ * added events (no sentinel) survive. An unmarked adopter event that
82
+ * is equivalent (modulo sentinel) to a method-managed event we're
83
+ * adding gets de-duped — same safety net as the Claude Code merge
84
+ * post-v0.12.2.
85
+ */
86
+ export declare function upsertCopilotHookFile(existing: CopilotHookFile | null, owned: readonly CopilotHookEvent[]): CopilotMergeResult;
87
+ /**
88
+ * Detect adopter drift: an event still carrying the sentinel but whose
89
+ * content no longer matches the canonical version we'd write. Returns
90
+ * `true` iff drift is present.
91
+ */
92
+ export declare function detectCopilotHookDrift(existing: CopilotHookFile | null, owned: readonly CopilotHookEvent[]): boolean;
93
+ //# sourceMappingURL=copilot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../../src/lib/hooks-seed/copilot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAmB,KAAK,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAI3F;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,iBAAiB,CAAC;CACxD;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC7C,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAUD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,2BAA2B,GACpC,MAAM,CAQR;AAOD;;;;;;GAMG;AACH,wBAAgB,2BAA2B,IAAI,gBAAgB,CAY9D;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,IAAI,gBAAgB,CAchE;AAED;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CACvC,MAAM,CACJ,2BAA2B,EAC3B;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAA;CAAE,CAC1D,CACF,CAAC;AAEF,wBAAgB,8BAA8B,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAW5E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAUrE;AA4BD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,eAAe,GAAG,IAAI,EAChC,KAAK,EAAE,SAAS,gBAAgB,EAAE,GACjC,kBAAkB,CA6BpB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,eAAe,GAAG,IAAI,EAChC,KAAK,EAAE,SAAS,gBAAgB,EAAE,GACjC,OAAO,CAKT"}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Builders + drift detection for the method-managed GitHub Copilot CLI
3
+ * hooks, per `docs/method/methods/hook-contracts.md` (Hook 1, Hook 2)
4
+ * and the portable contracts in `hook-portable-contract-schema.yaml`.
5
+ *
6
+ * The Copilot CLI surface differs from Claude Code in three ways
7
+ * (per ADR 0141 §4.3 + hook-contracts.md):
8
+ *
9
+ * 1. Hook configs live in per-event JSON files (`.github/hooks/<event>.json`),
10
+ * not a single settings.json.
11
+ * 2. No per-tool matcher — every `preToolUse` hook fires for every
12
+ * tool, with in-script filtering instead.
13
+ * 3. Approval semantic is declarative (`approval: deny-on-nonzero`)
14
+ * rather than exit-code based.
15
+ *
16
+ * Ownership is sentinel-based, same as Claude Code: the `bash` and
17
+ * `powershell` command strings carry `# sdd-method-managed:true`.
18
+ * Adopter-added events in the same `events[]` array lack the sentinel
19
+ * and survive sync.
20
+ */
21
+ import { METHOD_MANAGED_SENTINEL } from "./types.js";
22
+ import { nativeEventName } from "./lifecycle-mapping.js";
23
+ const HARNESS = "github-copilot-cli";
24
+ /** Filename per portable lifecycle class. */
25
+ const HOOK_FILE_BY_PORTABLE = {
26
+ pre_tool_use: "pre-tool-use.json",
27
+ session_start: "session-start.json",
28
+ };
29
+ export function copilotHookFilePath(portable) {
30
+ const name = HOOK_FILE_BY_PORTABLE[portable];
31
+ if (!name) {
32
+ throw new Error(`No Copilot CLI hook file mapped for portable class "${portable}"`);
33
+ }
34
+ return `.github/hooks/${name}`;
35
+ }
36
+ function withSentinel(command) {
37
+ if (command.includes(METHOD_MANAGED_SENTINEL))
38
+ return command;
39
+ return `${command} ${METHOD_MANAGED_SENTINEL}`;
40
+ }
41
+ /**
42
+ * Hook 1 — `block-edits-to-method-managed-paths` (pre_tool_use).
43
+ * Copilot CLI has no per-tool matcher, so the script
44
+ * (orchestration/scripts/copilot-method-guard.{sh,ps1}) does the
45
+ * filtering on tool name in addition to the path check. Method-side
46
+ * authors the scripts; we just emit the wiring.
47
+ */
48
+ export function buildCopilotPreToolUseEvent() {
49
+ return {
50
+ type: nativeEventName(HARNESS, "pre_tool_use"),
51
+ command: {
52
+ bash: withSentinel("./orchestration/scripts/copilot-method-guard.sh"),
53
+ powershell: withSentinel("./orchestration/scripts/copilot-method-guard.ps1"),
54
+ },
55
+ timeout_ms: 5000,
56
+ approval: "deny-on-nonzero",
57
+ };
58
+ }
59
+ /**
60
+ * Hook 2 — `validate-adr-structure-on-session-start` (session_start).
61
+ * Output is surfaced as session-baseline context; non-blocking
62
+ * (`approval: always-allow`) to match the portable contract's `warn`
63
+ * exit-code semantic.
64
+ */
65
+ export function buildCopilotSessionStartEvent() {
66
+ return {
67
+ type: nativeEventName(HARNESS, "session_start"),
68
+ command: {
69
+ bash: withSentinel("sdd-cli validate --validator adr-structure 2>&1 | head -20"),
70
+ powershell: withSentinel("sdd-cli validate --validator adr-structure 2>&1 | Select-Object -First 20"),
71
+ },
72
+ timeout_ms: 30000,
73
+ approval: "always-allow",
74
+ };
75
+ }
76
+ export function buildMethodManagedCopilotHooks() {
77
+ return {
78
+ pre_tool_use: {
79
+ filePath: copilotHookFilePath("pre_tool_use"),
80
+ events: [buildCopilotPreToolUseEvent()],
81
+ },
82
+ session_start: {
83
+ filePath: copilotHookFilePath("session_start"),
84
+ events: [buildCopilotSessionStartEvent()],
85
+ },
86
+ };
87
+ }
88
+ /**
89
+ * An event entry is method-managed iff its `command.bash` (or
90
+ * `command.powershell`) carries the sentinel.
91
+ */
92
+ export function isMethodManagedEvent(event) {
93
+ const bash = typeof event.command?.bash === "string" ? event.command.bash : "";
94
+ const ps = typeof event.command?.powershell === "string"
95
+ ? event.command.powershell
96
+ : "";
97
+ return (bash.includes(METHOD_MANAGED_SENTINEL) ||
98
+ ps.includes(METHOD_MANAGED_SENTINEL));
99
+ }
100
+ /**
101
+ * Strip the sentinel and trailing whitespace from a command string so
102
+ * two commands can be compared modulo ownership marker. Symmetric to
103
+ * the Claude Code merge logic.
104
+ */
105
+ function normaliseCommandString(command) {
106
+ return command.replace(METHOD_MANAGED_SENTINEL, "").trimEnd();
107
+ }
108
+ function eventsEquivalentExcludingSentinel(a, b) {
109
+ if (a.type !== b.type)
110
+ return false;
111
+ if (a.approval !== b.approval)
112
+ return false;
113
+ if (a.timeout_ms !== b.timeout_ms)
114
+ return false;
115
+ const aBash = a.command?.bash ?? "";
116
+ const bBash = b.command?.bash ?? "";
117
+ const aPs = a.command?.powershell ?? "";
118
+ const bPs = b.command?.powershell ?? "";
119
+ return (normaliseCommandString(aBash) === normaliseCommandString(bBash) &&
120
+ normaliseCommandString(aPs) === normaliseCommandString(bPs));
121
+ }
122
+ /**
123
+ * Upsert method-managed events into an existing hook file. Adopter-
124
+ * added events (no sentinel) survive. An unmarked adopter event that
125
+ * is equivalent (modulo sentinel) to a method-managed event we're
126
+ * adding gets de-duped — same safety net as the Claude Code merge
127
+ * post-v0.12.2.
128
+ */
129
+ export function upsertCopilotHookFile(existing, owned) {
130
+ const currentEvents = existing?.events ?? [];
131
+ let dedupedAny = false;
132
+ const adopterEvents = currentEvents.filter((evt) => {
133
+ if (isMethodManagedEvent(evt))
134
+ return false;
135
+ const equivalent = owned.some((o) => eventsEquivalentExcludingSentinel(evt, o));
136
+ if (equivalent) {
137
+ dedupedAny = true;
138
+ return false;
139
+ }
140
+ return true;
141
+ });
142
+ const before = currentEvents.filter((e) => isMethodManagedEvent(e));
143
+ const after = owned;
144
+ const methodChanged = JSON.stringify(before) !== JSON.stringify(after);
145
+ const nextFile = {
146
+ version: 1,
147
+ events: [...adopterEvents, ...owned],
148
+ };
149
+ return {
150
+ file: nextFile,
151
+ changed: methodChanged || dedupedAny,
152
+ };
153
+ }
154
+ /**
155
+ * Detect adopter drift: an event still carrying the sentinel but whose
156
+ * content no longer matches the canonical version we'd write. Returns
157
+ * `true` iff drift is present.
158
+ */
159
+ export function detectCopilotHookDrift(existing, owned) {
160
+ if (!existing)
161
+ return false;
162
+ const existingMethod = existing.events.filter((e) => isMethodManagedEvent(e));
163
+ if (existingMethod.length === 0)
164
+ return false;
165
+ return JSON.stringify(existingMethod) !== JSON.stringify(owned);
166
+ }
167
+ //# sourceMappingURL=copilot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../../src/lib/hooks-seed/copilot.ts"],"names":[],"mappings":"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"}
@@ -14,4 +14,8 @@ export { METHOD_MANAGED_SENTINEL, isMethodManagedMatcher } from "./types.js";
14
14
  export { buildMethodManagedHooks } from "./entries.js";
15
15
  export { detectHooksDrift, upsertMethodManagedHooks, } from "./merge.js";
16
16
  export type { HooksUpsertResult } from "./merge.js";
17
+ export { buildMethodManagedCopilotHooks, copilotHookFilePath, detectCopilotHookDrift, isMethodManagedEvent, upsertCopilotHookFile, } from "./copilot.js";
18
+ export type { CopilotHookCommand, CopilotHookEvent, CopilotHookFile, CopilotHookSurface, CopilotMergeResult, } from "./copilot.js";
19
+ export { nativeEventName, } from "./lifecycle-mapping.js";
20
+ export type { PortableLifecycleEventClass } from "./lifecycle-mapping.js";
17
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/hooks-seed/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,YAAY,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,UAAU,EACV,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EACL,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/hooks-seed/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,YAAY,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,UAAU,EACV,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EACL,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,EACL,8BAA8B,EAC9B,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC"}
@@ -12,4 +12,6 @@
12
12
  export { METHOD_MANAGED_SENTINEL, isMethodManagedMatcher } from "./types.js";
13
13
  export { buildMethodManagedHooks } from "./entries.js";
14
14
  export { detectHooksDrift, upsertMethodManagedHooks, } from "./merge.js";
15
+ export { buildMethodManagedCopilotHooks, copilotHookFilePath, detectCopilotHookDrift, isMethodManagedEvent, upsertCopilotHookFile, } from "./copilot.js";
16
+ export { nativeEventName, } from "./lifecycle-mapping.js";
15
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/hooks-seed/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EACL,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/hooks-seed/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EACL,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,8BAA8B,EAC9B,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAStB,OAAO,EACL,eAAe,GAChB,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Portable lifecycle event class → harness-native event mapping per
3
+ * ADR 0141 §4.3 and the table in `docs/method/foundations/lifecycle-event-classes.yaml`.
4
+ *
5
+ * Adding a new harness binding is mechanical: extend `AgentHarness`
6
+ * in src/lib/agent-harness.ts and add a row here. Hook builders
7
+ * consume this mapping rather than hand-coding native event names.
8
+ */
9
+ import type { AgentHarness } from "../agent-harness.js";
10
+ export type PortableLifecycleEventClass = "pre_tool_use" | "post_tool_use" | "user_prompt_submit" | "session_start" | "session_stop";
11
+ export declare function nativeEventName(harness: AgentHarness, portable: PortableLifecycleEventClass): string;
12
+ //# sourceMappingURL=lifecycle-mapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle-mapping.d.ts","sourceRoot":"","sources":["../../../src/lib/hooks-seed/lifecycle-mapping.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,MAAM,2BAA2B,GACnC,cAAc,GACd,eAAe,GACf,oBAAoB,GACpB,eAAe,GACf,cAAc,CAAC;AAqBnB,wBAAgB,eAAe,CAC7B,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,2BAA2B,GACpC,MAAM,CAER"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Portable lifecycle event class → harness-native event mapping per
3
+ * ADR 0141 §4.3 and the table in `docs/method/foundations/lifecycle-event-classes.yaml`.
4
+ *
5
+ * Adding a new harness binding is mechanical: extend `AgentHarness`
6
+ * in src/lib/agent-harness.ts and add a row here. Hook builders
7
+ * consume this mapping rather than hand-coding native event names.
8
+ */
9
+ const MAPPINGS = {
10
+ "claude-code": {
11
+ pre_tool_use: "PreToolUse",
12
+ post_tool_use: "PostToolUse",
13
+ user_prompt_submit: "UserPromptSubmit",
14
+ session_start: "SessionStart",
15
+ session_stop: "Stop",
16
+ },
17
+ "github-copilot-cli": {
18
+ pre_tool_use: "preToolUse",
19
+ post_tool_use: "postToolUse",
20
+ user_prompt_submit: "userPromptSubmitted",
21
+ session_start: "sessionStart",
22
+ session_stop: "agentStop",
23
+ },
24
+ };
25
+ export function nativeEventName(harness, portable) {
26
+ return MAPPINGS[harness][portable];
27
+ }
28
+ //# sourceMappingURL=lifecycle-mapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle-mapping.js","sourceRoot":"","sources":["../../../src/lib/hooks-seed/lifecycle-mapping.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH,MAAM,QAAQ,GAEV;IACF,aAAa,EAAE;QACb,YAAY,EAAE,YAAY;QAC1B,aAAa,EAAE,aAAa;QAC5B,kBAAkB,EAAE,kBAAkB;QACtC,aAAa,EAAE,cAAc;QAC7B,YAAY,EAAE,MAAM;KACrB;IACD,oBAAoB,EAAE;QACpB,YAAY,EAAE,YAAY;QAC1B,aAAa,EAAE,aAAa;QAC5B,kBAAkB,EAAE,qBAAqB;QACzC,aAAa,EAAE,cAAc;QAC7B,YAAY,EAAE,WAAW;KAC1B;CACF,CAAC;AAEF,MAAM,UAAU,eAAe,CAC7B,OAAqB,EACrB,QAAqC;IAErC,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { AgentHarness } from "../agent-harness.js";
1
2
  import { type Profile } from "../repo-kind.js";
2
3
  import { type IntegrationProfileType } from "./integration.js";
3
4
  export interface InitOptions {
@@ -9,11 +10,12 @@ export interface InitOptions {
9
10
  dryRun: boolean;
10
11
  platformRoot?: string;
11
12
  /**
12
- * Opt-in agent harness for the hook-seed layer per ADR 0129. If
13
- * unset, no hooks are seeded beyond the baseline guard script that
14
- * platform scaffolding already writes.
13
+ * Target agent harness per ADR 0141 §4.6. Drives which hooks
14
+ * baseline gets seeded and which wrappers are emitted. The CLI verb
15
+ * resolves the default (`claude-code`) before calling in; callers
16
+ * MAY pass `undefined` to mean the same thing in test paths.
15
17
  */
16
- agentHarness?: "claude-code";
18
+ agentHarness?: AgentHarness;
17
19
  appId?: string;
18
20
  integrationId?: string;
19
21
  profileType?: IntegrationProfileType;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/init/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAyB,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAStE,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAK1B,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC;IAG7B,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IAGvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AA8BD,wBAAsB,OAAO,CAC3B,IAAI,EAAE,WAAW,EACjB,MAAM,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAA2C,GACpE,OAAO,CAAC,UAAU,CAAC,CAkHrB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/init/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAyB,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAItE,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAK1B,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAG5B,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IAGvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AA8BD,wBAAsB,OAAO,CAC3B,IAAI,EAAE,WAAW,EACjB,MAAM,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAA2C,GACpE,OAAO,CAAC,UAAU,CAAC,CA8GrB"}
@@ -1,5 +1,5 @@
1
1
  import { execFile as execFileCb } from "node:child_process";
2
- import { access, mkdir, writeFile } from "node:fs/promises";
2
+ import { access, mkdir } from "node:fs/promises";
3
3
  import { join } from "node:path";
4
4
  import { promisify } from "node:util";
5
5
  import { loadBundle } from "../bundle.js";
@@ -7,7 +7,6 @@ import { profileFromBundleName } from "../repo-kind.js";
7
7
  import { runSync } from "../sync/index.js";
8
8
  import { runValidate } from "../validate/index.js";
9
9
  import { scaffoldAppProfile } from "./app.js";
10
- import { renderAppClaudeMd, renderIntegrationClaudeMd, renderPlatformClaudeMd, } from "./claude-md.js";
11
10
  import { scaffoldIntegrationProfile, } from "./integration.js";
12
11
  import { derivePlatformId, scaffoldPlatformProfile } from "./platform.js";
13
12
  const execFile = promisify(execFileCb);
@@ -94,9 +93,9 @@ export async function runInit(opts, stdout = (line) => process.stdout.write(line
94
93
  stdout(fail("Sync failed during init; target repo may be partially populated"));
95
94
  return { exitCode: syncResult.exitCode };
96
95
  }
97
- stdout(info("Writing CLAUDE.md"));
98
- await writeFile(join(opts.targetDir, "CLAUDE.md"), renderClaudeMdForProfile(opts), "utf8");
99
- stdout(info(" wrote CLAUDE.md"));
96
+ // Briefing files (`agent-instructions.md` + harness wrapper) are
97
+ // emitted by the sync step's `syncBriefingFiles` pass per ADR 0148.
98
+ // No init-time write needed; sync handles fresh-vs-existing.
100
99
  if (opts.gitInit) {
101
100
  const alreadyGit = await pathExists(join(opts.targetDir, ".git"));
102
101
  if (alreadyGit) {
@@ -152,27 +151,6 @@ function displayId(opts) {
152
151
  }
153
152
  return opts.platformName ?? "<unknown-platform>";
154
153
  }
155
- function renderClaudeMdForProfile(opts) {
156
- if (opts.profile === "application") {
157
- return renderAppClaudeMd({
158
- appId: opts.appId,
159
- ...(opts.platformName ? { platformName: opts.platformName } : {}),
160
- });
161
- }
162
- if (opts.profile === "integration") {
163
- return renderIntegrationClaudeMd({
164
- integrationId: opts.integrationId,
165
- profileType: opts.profileType,
166
- ...(opts.providerName ? { providerName: opts.providerName } : {}),
167
- ...(opts.platformName ? { platformName: opts.platformName } : {}),
168
- });
169
- }
170
- const platformName = opts.platformName;
171
- return renderPlatformClaudeMd({
172
- platformName,
173
- platformId: opts.platformId ?? derivePlatformId(platformName),
174
- });
175
- }
176
154
  async function runScaffold(opts) {
177
155
  if (opts.profile === "application") {
178
156
  return scaffoldAppProfile({
@@ -187,6 +165,7 @@ async function runScaffold(opts) {
187
165
  platformName,
188
166
  platformId,
189
167
  targetRepo: opts.targetDir,
168
+ ...(opts.agentHarness ? { agentHarness: opts.agentHarness } : {}),
190
169
  });
191
170
  }
192
171
  return scaffoldIntegrationProfile({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/init/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/init/index.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,17 @@
1
+ import type { AgentHarness } from "../agent-harness.js";
1
2
  export interface PlatformProfileRenderInput {
2
3
  platformName: string;
3
4
  platformId: string;
4
5
  targetRepo: string;
5
6
  today?: string;
7
+ /**
8
+ * Target agent harness per ADR 0141 §4.6. When set to
9
+ * `github-copilot-cli`, the scaffold skips `.claude/settings.json`
10
+ * (Copilot CLI does not read it). The first sync run then writes
11
+ * `.github/hooks/*.json`. Defaults to `claude-code` behaviour when
12
+ * omitted, preserving the legacy scaffold.
13
+ */
14
+ agentHarness?: AgentHarness;
6
15
  }
7
16
  export declare function renderPlatformReadme(input: {
8
17
  platformName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../src/lib/init/platform.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,MAAM,CAkDT;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CA4BhD;AAED,wBAAgB,wBAAwB,CAAC,IAAI,GAAE;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAwBd;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAqB1E;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAqB5E;AAED,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA8DrC;AAED,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAM7D"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../src/lib/init/platform.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAQxD,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,MAAM,CAkDT;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CA4BhD;AAED,wBAAgB,wBAAwB,CAAC,IAAI,GAAE;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAwBd;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAqB1E;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAqB5E;AAED,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAoErC;AAED,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAM7D"}
@@ -151,8 +151,14 @@ export async function scaffoldPlatformProfile(input) {
151
151
  filesWritten.push("README.md");
152
152
  await writeFileAt(join(input.targetRepo, ".gitignore"), renderPlatformGitignore());
153
153
  filesWritten.push(".gitignore");
154
- await writeFileAt(join(input.targetRepo, ".claude/settings.json"), renderClaudeSettingsStub({ sddRepoPath: input.targetRepo }));
155
- filesWritten.push(".claude/settings.json");
154
+ // ADR 0141 §4.6: only seed .claude/settings.json under the Claude
155
+ // Code reference harness. Copilot CLI adopters get .github/hooks/*.json
156
+ // written by the first sync run; their MCP wiring lands separately
157
+ // under ADR 0150 Phase 3.
158
+ if (input.agentHarness !== "github-copilot-cli") {
159
+ await writeFileAt(join(input.targetRepo, ".claude/settings.json"), renderClaudeSettingsStub({ sddRepoPath: input.targetRepo }));
160
+ filesWritten.push(".claude/settings.json");
161
+ }
156
162
  await writeFileAt(join(input.targetRepo, WORKFLOW_REL_PATH), renderMethodValidationWorkflow("platform"));
157
163
  filesWritten.push(WORKFLOW_REL_PATH);
158
164
  for (const rel of [