persona-harness 0.8.42 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +56 -20
  3. package/dist/cli/attach-staging.d.ts +1 -1
  4. package/dist/cli/attach-staging.js +2 -2
  5. package/dist/cli/attach-staging.js.map +1 -1
  6. package/dist/cli/attach.js +72 -4
  7. package/dist/cli/attach.js.map +1 -1
  8. package/dist/cli/bootstrap-contract.d.ts +1 -1
  9. package/dist/cli/bootstrap-contract.js +6 -0
  10. package/dist/cli/bootstrap-contract.js.map +1 -1
  11. package/dist/cli/bootstrap-runner.js +1 -1
  12. package/dist/cli/bootstrap-runner.js.map +1 -1
  13. package/dist/cli/host-skill-materializer.d.ts +25 -0
  14. package/dist/cli/host-skill-materializer.js +147 -0
  15. package/dist/cli/host-skill-materializer.js.map +1 -0
  16. package/dist/cli/init-output.js +1 -1
  17. package/dist/cli/init-output.js.map +1 -1
  18. package/dist/cli/init-ownership.js +9 -1
  19. package/dist/cli/init-ownership.js.map +1 -1
  20. package/dist/cli/init-plan.js +8 -6
  21. package/dist/cli/init-plan.js.map +1 -1
  22. package/dist/cli/init-source.js +2 -0
  23. package/dist/cli/init-source.js.map +1 -1
  24. package/dist/cli/init.js +10 -1
  25. package/dist/cli/init.js.map +1 -1
  26. package/dist/index.js +0 -34
  27. package/dist/index.js.map +1 -1
  28. package/dist/portable-skill.d.ts +3 -1
  29. package/dist/portable-skill.js +2 -1
  30. package/dist/portable-skill.js.map +1 -1
  31. package/dist/runtime/host-capability-manifest.d.ts +48 -0
  32. package/dist/runtime/host-capability-manifest.js +172 -0
  33. package/dist/runtime/host-capability-manifest.js.map +1 -0
  34. package/dist/runtime/opencode-skill-adapter.js +25 -2
  35. package/dist/runtime/opencode-skill-adapter.js.map +1 -1
  36. package/dist/runtime/persona-shared-skill-catalog.d.ts +1 -0
  37. package/dist/runtime/persona-shared-skill-catalog.js +13 -6
  38. package/dist/runtime/persona-shared-skill-catalog.js.map +1 -1
  39. package/dist/runtime/portable-skill-adapters.d.ts +4 -1
  40. package/dist/runtime/portable-skill-adapters.js +3 -1
  41. package/dist/runtime/portable-skill-adapters.js.map +1 -1
  42. package/dist/runtime/portable-skill-contract.d.ts +8 -5
  43. package/dist/runtime/portable-skill-contract.js +15 -17
  44. package/dist/runtime/portable-skill-contract.js.map +1 -1
  45. package/docs/START-HERE.md +26 -8
  46. package/docs/current/README.md +2 -2
  47. package/docs/current/canonical-docs-index.md +3 -2
  48. package/docs/current/docs-inventory.md +1 -0
  49. package/docs/current/java-backend-mvp-install-guide.md +5 -0
  50. package/docs/current/persona-harness-detailed-usage.md +9 -3
  51. package/docs/current/persona-shared-skills-core.md +48 -14
  52. package/docs/current/portable-host-adapters.md +135 -0
  53. package/docs/current/release/consumer-authority-current-acceptance.json +1 -1
  54. package/docs/current/release/v0.9.0-release-notes.md +56 -0
  55. package/docs/current/release/v0.9.1-release-notes.md +32 -0
  56. package/package.json +3 -2
  57. package/packages/shared-skills/README.md +20 -0
  58. package/packages/shared-skills/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -14,6 +14,20 @@ preparation alone does not establish stable support or channel state.
14
14
  explicit subsequent `ph update enable --yes` can opt in; malformed, foreign,
15
15
  symlinked, or user-diverged state remains fail-closed and unchanged.
16
16
 
17
+ ## [0.9.1] - 2026-08-31
18
+
19
+ - Publish the canonical portable-host guide for the static adapters generated
20
+ by `ph init` in Codex, Claude Code, OpenCode, and Antigravity projects.
21
+ It distinguishes package-created discovery files from a live host session's
22
+ selection or delivery of a skill.
23
+ - Document safe adapter ownership and update behavior: a later `ph init` may
24
+ refresh only unchanged Persona-owned files, while modified, user-owned, or
25
+ symlinked targets remain fail-closed. `ph update enable` remains the separate
26
+ optional OpenCode plugin-pin path.
27
+ - Keep Context and legacy runtime injection default-off, and state that current
28
+ Context delivery is an optional OpenCode-specific runtime boundary rather
29
+ than a portable-host claim.
30
+
17
31
  ## [0.8.31] - 2026-08-25
18
32
 
19
33
  - Clarify `ph workflow finish implement` source-read runtime failures with a
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Persona Harness
8
8
 
9
- **Evidence-first completion gates for AI coding agents building Java/Spring backends.**
9
+ **Evidence-first workflow gates and portable skill adapters for AI coding agents building Java/Spring backends.**
10
10
 
11
11
  [![npm version](https://img.shields.io/npm/v/persona-harness?color=369eff&labelColor=black&style=flat-square)](https://www.npmjs.com/package/persona-harness)
12
12
  [![npm downloads](https://img.shields.io/npm/dt/persona-harness?color=ff6b35&labelColor=black&style=flat-square)](https://www.npmjs.com/package/persona-harness)
@@ -44,8 +44,11 @@ ignored and `finish` exits `1`; the opt-in TDD rail blocked green-only
44
44
  completion in 5/5 measured runs. Runtime injection did not improve the paired
45
45
  OpenCode measurements and added cost, so it remains default-off.
46
46
 
47
- **Built for:** Java/Spring/Gradle projects using OpenCode, with explicit
48
- workflow gates and evidence checks.
47
+ **Built for:** Java/Spring/Gradle projects with explicit workflow gates and
48
+ evidence checks. `ph init` materializes portable, project-local skill adapters
49
+ for Codex, Claude Code, OpenCode, and Antigravity. Static adapter installation
50
+ is package behavior; a host's live skill selection and delivery are separate
51
+ observation boundaries.
49
52
 
50
53
  **Not a promise of:** automatic implementation, generated-app quality,
51
54
  production readiness, token savings, or broad security guarantees.
@@ -103,8 +106,9 @@ Persona Harness exposes two deliberately separate tracks:
103
106
  verification authority.
104
107
  - **Isolation:** Context-only paths do not execute project commands or contact
105
108
  GitHub/network.
106
- - **Host:** OpenCode is the only implemented delivery adapter; live host
107
- delivery remains a separate, unobserved boundary.
109
+ - **Host:** `ph init` installs static skill adapters for Codex, Claude Code,
110
+ OpenCode, and Antigravity. Context delivery is currently implemented only by
111
+ the optional OpenCode adapter and remains a separate, unobserved boundary.
108
112
  - **Evidence:** Context usefulness remains `INCONCLUSIVE` until independent
109
113
  external evidence exists.
110
114
  - **Product focus:** the productized workflow focus is Java/Spring. The
@@ -199,8 +203,8 @@ catalog, access the network, execute shell commands, or write workflow,
199
203
  evidence, or authority records. The adapter's actual behavior in a live
200
204
  OpenCode release remains a separate host-observation boundary.
201
205
 
202
- The optional runtime adapter also registers the bundled portable Persona-owned
203
- shared-skill catalog with OpenCode. Product ideas start with a one-question
206
+ `ph init` materializes the bundled Persona-owned shared-skill catalog at each
207
+ host's project-local discovery path. Product ideas start with a one-question
204
208
  interview and explicit brief approval; adapters advise only and never create
205
209
  workflow state or invoke host agents automatically. See [Persona Shared Skills
206
210
  Core](docs/current/persona-shared-skills-core.md).
@@ -212,18 +216,22 @@ earned by measurement first — see [MEASURED-CLAIMS](docs/MEASURED-CLAIMS.md).
212
216
 
213
217
  ## Install
214
218
 
215
- Requires Node.js ^20.17.0 || >=22.9.0 (Node 21 is unsupported), Java 21+ / Gradle, and the OpenCode CLI with a configured provider.
219
+ Requires Node.js ^20.17.0 || >=22.9.0 (Node 21 is unsupported). Java 21+ /
220
+ Gradle are required for the Java/Spring workflow rail. Install the coding-agent
221
+ host you already use separately; OpenCode is optional unless you want its
222
+ plugin-only Context delivery.
216
223
 
217
224
  ```bash
218
- # OpenCode
219
- curl -fsSL https://opencode.ai/install | bash # or: npm install -g opencode-ai
220
- opencode auth login
221
-
222
- # Persona Harness
225
+ # Any supported host project
223
226
  npm install -D persona-harness
224
- npx ph --help && npx ph doctor
227
+ npx ph init
228
+ npx ph doctor
225
229
  ```
226
230
 
231
+ `ph init` installs host-native discovery files without requiring a
232
+ Persona-specific launch command. See the [portable host adapter guide](docs/current/portable-host-adapters.md)
233
+ for the generated paths, host-specific limits, and safe update procedure.
234
+
227
235
  ## Quick Start
228
236
 
229
237
  For a clean project directory (not the Persona Harness repo itself):
@@ -237,6 +245,12 @@ npx ph bootstrap backend # AGENTS.md, profile, plan, report templates
237
245
  npx ph go "Add a task creation endpoint."
238
246
  ```
239
247
 
248
+ `ph init` writes manifest-owned shared-skill adapters beneath `.agents/skills`,
249
+ `.claude/skills`, and `.opencode/skills`. It refuses a modified, user-owned, or
250
+ symlinked generated target instead of overwriting it. The generated files make
251
+ the catalog discoverable to the host; they do not prove that a running session
252
+ selected a skill or grant a workflow command any authority.
253
+
240
254
  For an existing Java/Spring/Gradle project, inspect the inferred draft first,
241
255
  then accept it explicitly:
242
256
 
@@ -302,6 +316,11 @@ OpenCode configuration and never overwrites changed rules, profiles, workflow
302
316
  state, or `.gitignore`; malformed, symlinked, foreign, or ordinary projects are
303
317
  left unchanged.
304
318
 
319
+ This automatic update path is OpenCode-plugin-specific. It does not rewrite the
320
+ portable host adapter trees. After upgrading the npm package, run `npx ph init`
321
+ to refresh only unchanged Persona-owned adapters; modified, user-owned, or
322
+ symlinked adapter files stay blocked rather than being overwritten.
323
+
305
324
  > [!NOTE]
306
325
  > If `workflow finish` fails, the agent must fix the reported blocker before claiming completion. **That failure is the product working, not a bug.**
307
326
 
@@ -390,6 +409,23 @@ do not change the P0-3 root CLI discovery contract.
390
409
 
391
410
  ## Platform And Host Support
392
411
 
412
+ ### Portable host adapters
413
+
414
+ `ph init` materializes the same catalog into each host's project-local discovery
415
+ layout. This proves the installed package produced safe static files, not that a
416
+ specific live session loaded or followed one.
417
+
418
+ | Host | Project-local adapter path | What the package establishes |
419
+ | --- | --- | --- |
420
+ | Codex and Antigravity | `.agents/skills/persona-harness-<skill-id>/SKILL.md` | Manifest-owned, host-neutral skill discovery metadata. |
421
+ | Claude Code | `.claude/skills/persona-harness-claude-<skill-id>/SKILL.md` | Manifest-owned, host-neutral skill discovery metadata. |
422
+ | OpenCode | `.opencode/skills/persona-harness-opencode-<skill-id>/SKILL.md` | Manifest-owned discovery metadata; the optional plugin remains a separate runtime boundary. |
423
+
424
+ The `.agents` and `.claude` adapters explicitly opt out of OpenCode automatic
425
+ discovery so an OpenCode project receives one native candidate rather than
426
+ duplicates. For the full ownership, upgrade, and non-claim boundary, read the
427
+ [portable host adapter guide](docs/current/portable-host-adapters.md).
428
+
393
429
  ### Node runtime floor
394
430
 
395
431
  The packaged CLI and its product-owned Sigstore authority verifiers require
@@ -418,12 +454,11 @@ or provide a credential fallback. When more than one repository is enrolled,
418
454
  pass the selected enrolled `owner/repository` to `fetch github`. Neither
419
455
  command publishes a package, moves a channel, or consumes Finish authority.
420
456
 
421
- | Surface | Status | Evidence boundary |
457
+ | CLI/runtime surface | Status | Evidence boundary |
422
458
  | --- | --- | --- |
423
- | Linux + OpenCode | Product: Node ^20.17.0 || >=22.9.0; source checks: Node 20.19.0 | Required Verify repository aggregates PR fast feedback and main package integration. Pull requests run policy, typecheck, build, and the two Vitest projects; main pushes additionally run Linux Node 20.19.0 source-built, packed-tarball, and fresh local-tarball installed checks. The dispatch-only support matrix retains exact product-floor Linux Node 20.17.0 and 22.9.0 imports plus latest Linux Node 20, 22, and 24 on demand. |
424
- | macOS + OpenCode | Manual limited smoke | The dispatch-only support matrix retains macOS Node 22 smoke only; this is not a promise of macOS Node 20/24 coverage. |
459
+ | Linux CLI/package | Product: Node ^20.17.0 || >=22.9.0; source checks: Node 20.19.0 | Required Verify repository aggregates PR fast feedback and main package integration. Pull requests run policy, typecheck, build, and the two Vitest projects; main pushes additionally run Linux Node 20.19.0 source-built, packed-tarball, and fresh local-tarball installed checks. The dispatch-only support matrix retains exact product-floor Linux Node 20.17.0 and 22.9.0 imports plus latest Linux Node 20, 22, and 24 on demand. |
460
+ | macOS CLI/package | Manual limited smoke | The dispatch-only support matrix retains macOS Node 22 smoke only; this is not a promise of macOS Node 20/24 coverage. |
425
461
  | Windows | Unverified / nonblocking | No Windows matrix job or support claim. Lock identity device/inode behavior and stale-lock/concurrency conclusions are not measured or verified. |
426
- | Codex adapter | Planned | No current Codex adapter or Codex product evidence; this is a planned adapter only. |
427
462
 
428
463
  Automatic CI boundary: Verify repository is the required PR/main aggregate. Pull requests require only the fast feedback lanes; main pushes also require Linux Node 20.19.0 package integration. The dispatch-only support matrix is deferred multi-runtime evidence, not a required PR/main gate. It is distinct from the canonical clean-CI builder's main-push signed evidence and the ordinary path-filtered diagnostic selftest.
429
464
 
@@ -433,8 +468,8 @@ Evidence answers one bounded question — *"What did this PH workflow observe fo
433
468
  this defined gate?"* — and nothing more. PH does **not** promise app-quality
434
469
  certification, token savings, Clean Code guarantees, broad AST/linter
435
470
  enforcement, a full TDD framework, closure guarantees, strong anti-forgery
436
- integrity before P3, or a complete workflow without OpenCode. The canonical list
437
- is in [MEASURED-CLAIMS](docs/MEASURED-CLAIMS.md).
471
+ integrity before P3, or a proven live workflow route on every host. The
472
+ canonical list is in [MEASURED-CLAIMS](docs/MEASURED-CLAIMS.md).
438
473
 
439
474
  > [!WARNING]
440
475
  > `ph bearshell` is **not a sandbox**. It limits runtime and output size, but commands still run on your machine with your permissions. See [SECURITY](SECURITY.md).
@@ -442,6 +477,7 @@ is in [MEASURED-CLAIMS](docs/MEASURED-CLAIMS.md).
442
477
  ## Docs
443
478
 
444
479
  - **New users** → [Start Here](docs/START-HERE.md) · [Quick Demo](docs/QUICK-DEMO.md) · [Measured Claims](docs/MEASURED-CLAIMS.md)
480
+ - **Codex, Claude Code, OpenCode, or Antigravity** → [portable host adapter guide](docs/current/portable-host-adapters.md)
445
481
  - **Agent not following the rail?** → [Troubleshooting](docs/troubleshooting/README.md)
446
482
  - **Install & backend shape** → [MVP install guide](docs/current/java-backend-mvp-install-guide.md)
447
483
  - **Contributors** → [CONTRIBUTING](CONTRIBUTING.md) · [ROADMAP](ROADMAP.md) · [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md)
@@ -1 +1 @@
1
- export declare function copyAttachContext(projectDir: string, stagingDir: string): void;
1
+ export declare function copyAttachContext(projectDir: string, stagingDir: string, ownedHostSkillAdapterPaths?: readonly string[]): void;
@@ -10,8 +10,8 @@ const STAGING_CONTEXT = [
10
10
  ".gitignore",
11
11
  ".opencode/opencode.json",
12
12
  ];
13
- export function copyAttachContext(projectDir, stagingDir) {
14
- for (const relativePath of STAGING_CONTEXT) {
13
+ export function copyAttachContext(projectDir, stagingDir, ownedHostSkillAdapterPaths = []) {
14
+ for (const relativePath of [...STAGING_CONTEXT, ...ownedHostSkillAdapterPaths]) {
15
15
  const source = join(projectDir, relativePath);
16
16
  if (existsSync(source)) {
17
17
  const target = join(stagingDir, relativePath);
@@ -1 +1 @@
1
- {"version":3,"file":"attach-staging.js","sourceRoot":"","sources":["../../src/cli/attach-staging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,eAAe,GAAG;IACtB,WAAW;IACX,cAAc;IACd,kBAAkB;IAClB,iBAAiB;IACjB,qBAAqB;IACrB,KAAK;IACL,YAAY;IACZ,yBAAyB;CACjB,CAAA;AAEV,MAAM,UAAU,iBAAiB,CAAC,UAAkB,EAAE,UAAkB;IACtE,KAAK,MAAM,YAAY,IAAI,eAAe,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;QAC7C,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;YAC7C,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAC/C,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"attach-staging.js","sourceRoot":"","sources":["../../src/cli/attach-staging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,eAAe,GAAG;IACtB,WAAW;IACX,cAAc;IACd,kBAAkB;IAClB,iBAAiB;IACjB,qBAAqB;IACrB,KAAK;IACL,YAAY;IACZ,yBAAyB;CACjB,CAAA;AAEV,MAAM,UAAU,iBAAiB,CAC/B,UAAkB,EAClB,UAAkB,EAClB,6BAAgD,EAAE;IAElD,KAAK,MAAM,YAAY,IAAI,CAAC,GAAG,eAAe,EAAE,GAAG,0BAA0B,CAAC,EAAE,CAAC;QAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;QAC7C,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;YAC7C,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAC/C,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,4 +1,4 @@
1
- import { cpSync, existsSync, mkdtempSync, readFileSync, rmSync, realpathSync, writeFileSync, } from "node:fs";
1
+ import { cpSync, existsSync, lstatSync, mkdtempSync, readFileSync, rmSync, realpathSync, writeFileSync, } from "node:fs";
2
2
  import { tmpdir } from "node:os";
3
3
  import { join, resolve } from "node:path";
4
4
  import process from "node:process";
@@ -10,8 +10,76 @@ import { copyAttachContext } from "./attach-staging.js";
10
10
  import { commitAttachTree } from "./attach-transaction.js";
11
11
  import { attachBlocked, attachUsage, parseAttachArgs, } from "./attach-command-contract.js";
12
12
  import { runBootstrapCommand } from "./bootstrap.js";
13
+ import { isHostSkillAdapterTarget } from "./host-skill-materializer.js";
14
+ import { InitManifestError, readInitManifest } from "./init-manifest.js";
13
15
  import { runInstructionsCommand } from "./instructions-infer.js";
14
16
  import { readWorkflowDiagnosis } from "./workflow-diagnostics.js";
17
+ const ATTACH_ROOTS = [".gitignore", ".opencode/opencode.json", ".persona", "AGENTS.md"];
18
+ function hostSkillAdapterPaths(projectDir) {
19
+ try {
20
+ const manifest = readInitManifest(projectDir);
21
+ if (manifest === null) {
22
+ return null;
23
+ }
24
+ return manifest.files
25
+ .map((entry) => entry.path)
26
+ .filter((path) => isHostSkillAdapterTarget(path));
27
+ }
28
+ catch (error) {
29
+ if (error instanceof InitManifestError) {
30
+ return null;
31
+ }
32
+ throw error;
33
+ }
34
+ }
35
+ function assertSafeHostSkillAdapterTarget(projectDir, relativePath) {
36
+ let current = resolve(projectDir);
37
+ const segments = relativePath.split("/");
38
+ for (const [index, segment] of segments.entries()) {
39
+ current = join(current, segment);
40
+ if (!existsSync(current)) {
41
+ return;
42
+ }
43
+ const stat = lstatSync(current);
44
+ if (stat.isSymbolicLink()) {
45
+ throw new Error(`Attach host skill adapter contains a symbolic link: ${relativePath}`);
46
+ }
47
+ if (index < segments.length - 1 && !stat.isDirectory()) {
48
+ throw new Error(`Attach host skill adapter parent is not a directory: ${relativePath}`);
49
+ }
50
+ if (index === segments.length - 1 && !stat.isFile()) {
51
+ throw new Error(`Attach host skill adapter is not a regular file: ${relativePath}`);
52
+ }
53
+ }
54
+ }
55
+ function assertHostSkillAdapterTargetsAreSafe(projectDir, stagingDir) {
56
+ const paths = hostSkillAdapterPaths(stagingDir);
57
+ if (paths === null) {
58
+ throw new Error("Attach staging is missing the init ownership manifest");
59
+ }
60
+ for (const relativePath of paths) {
61
+ assertSafeHostSkillAdapterTarget(projectDir, relativePath);
62
+ const targetPath = join(projectDir, relativePath);
63
+ if (!existsSync(targetPath)) {
64
+ continue;
65
+ }
66
+ const expected = readFileSync(join(stagingDir, relativePath));
67
+ if (!readFileSync(targetPath).equals(expected)) {
68
+ throw new Error(`Attach host skill adapter conflicts at ${relativePath}`);
69
+ }
70
+ }
71
+ return paths;
72
+ }
73
+ function attachCommitRoots(projectDir, stagingDir) {
74
+ return [...ATTACH_ROOTS, ...assertHostSkillAdapterTargetsAreSafe(projectDir, stagingDir)];
75
+ }
76
+ function ownedHostSkillAdapterPaths(projectDir) {
77
+ const paths = hostSkillAdapterPaths(projectDir) ?? [];
78
+ for (const relativePath of paths) {
79
+ assertSafeHostSkillAdapterTarget(projectDir, relativePath);
80
+ }
81
+ return paths;
82
+ }
15
83
  function writeManagedAgents(stagingDir) {
16
84
  writeFileSync(join(stagingDir, "AGENTS.md"), managedBackendAgentInstructions());
17
85
  }
@@ -58,7 +126,7 @@ function runFreshAttach(projectDir, options) {
58
126
  return attachBlocked(inference.stderr.trim() || "instruction inference failed.", "Resolve the reported project inference problem, then retry attach.", "npx ph attach --yes");
59
127
  }
60
128
  writeManagedAgents(stagingDir);
61
- commitAttachTree(projectDir, stagingDir, [".gitignore", ".opencode/opencode.json", ".persona", "AGENTS.md"], { onAfterCommitFile: options.onAfterCommitFile });
129
+ commitAttachTree(projectDir, stagingDir, attachCommitRoots(projectDir, stagingDir), { onAfterCommitFile: options.onAfterCommitFile });
62
130
  return {
63
131
  status: 0,
64
132
  stdout: [
@@ -90,7 +158,7 @@ function runRepair(projectDir, options) {
90
158
  }
91
159
  const stagingDir = mkdtempSync(join(tmpdir(), "persona-attach-repair-"));
92
160
  try {
93
- copyAttachContext(projectDir, stagingDir);
161
+ copyAttachContext(projectDir, stagingDir, ownedHostSkillAdapterPaths(projectDir));
94
162
  cpSync(join(projectDir, ".persona"), join(stagingDir, ".persona"), { recursive: true });
95
163
  const bootstrap = runBootstrapCommand(["backend"], {
96
164
  attachStagingOwnership: { kind: "repair", projectRealPath: realpathSync(projectDir) },
@@ -109,7 +177,7 @@ function runRepair(projectDir, options) {
109
177
  writeFileSync(join(stagingDir, "AGENTS.md"), existsSync(agentsPath)
110
178
  ? repairManagedBackendAgentInstructions(readFileSync(agentsPath, "utf8"))
111
179
  : managedBackendAgentInstructions());
112
- commitAttachTree(projectDir, stagingDir, [".gitignore", ".opencode/opencode.json", ".persona", "AGENTS.md"], {
180
+ commitAttachTree(projectDir, stagingDir, attachCommitRoots(projectDir, stagingDir), {
113
181
  onAfterCommitFile: options.onAfterCommitFile,
114
182
  });
115
183
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"attach.js","sourceRoot":"","sources":["../../src/cli/attach.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attach.js","sourceRoot":"","sources":["../../src/cli/attach.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,7 @@ export declare const POLICY_OVERLAY_PATH = ".persona/policies/overlay.jsonc";
39
39
  export declare const ROOT_AGENT_INSTRUCTIONS_PATH = "AGENTS.md";
40
40
  export declare const BOOTSTRAP_PERSONA_FILES: readonly [".ph-init-manifest.json", "harness.jsonc", "project-profile.jsonc", "policies/overlay.jsonc", "policies/company/backend.md", "policies/personal/backend.md"];
41
41
  export declare const BOOTSTRAP_WORKFLOW_FILES: readonly ["plan.md", "implementation-report.md", "review-report.md", "roles.md", "workflow-loop-state.json", "ralph-loop-state.json"];
42
- export declare const BOOTSTRAP_TRANSACTION_OUTPUT_MANIFEST: readonly [".gitignore", ".opencode/opencode.json", "AGENTS.md", ".persona/.ph-init-manifest.json", ".persona/harness.jsonc", ".persona/conventions/**", ".persona/rules/**", ".persona/project-profile.jsonc", ".persona/policies/overlay.jsonc", ".persona/policies/company/backend.md", ".persona/policies/personal/backend.md", ".persona/workflow/plan.md", ".persona/workflow/implementation-report.md", ".persona/workflow/review-report.md", ".persona/workflow/roles.md", ".persona/workflow/workflow-loop-state.json", ".persona/workflow/ralph-loop-state.json", "temporary: .<leaf>.<uuid>.tmp", "temporary: Persona staging directory"];
42
+ export declare const BOOTSTRAP_TRANSACTION_OUTPUT_MANIFEST: readonly [".gitignore", ".agents/skills/**", ".claude/skills/**", ".opencode/opencode.json", ".opencode/skills/**", "AGENTS.md", ".persona/.ph-init-manifest.json", ".persona/harness.jsonc", ".persona/conventions/**", ".persona/rules/**", ".persona/project-profile.jsonc", ".persona/policies/overlay.jsonc", ".persona/policies/company/backend.md", ".persona/policies/personal/backend.md", ".persona/workflow/plan.md", ".persona/workflow/implementation-report.md", ".persona/workflow/review-report.md", ".persona/workflow/roles.md", ".persona/workflow/workflow-loop-state.json", ".persona/workflow/ralph-loop-state.json", "temporary: .<leaf>.<uuid>.tmp", "temporary: Persona staging directory"];
43
43
  export declare function strictModeSummaryLines(): readonly string[];
44
44
  export declare function runtimeInjectionPreviewSummaryLines(): readonly string[];
45
45
  export declare function multiAgentPreviewSummaryLines(): readonly string[];
@@ -26,7 +26,10 @@ export const BOOTSTRAP_WORKFLOW_FILES = [
26
26
  ];
27
27
  export const BOOTSTRAP_TRANSACTION_OUTPUT_MANIFEST = [
28
28
  ".gitignore",
29
+ ".agents/skills/**",
30
+ ".claude/skills/**",
29
31
  ".opencode/opencode.json",
32
+ ".opencode/skills/**",
30
33
  "AGENTS.md",
31
34
  ".persona/.ph-init-manifest.json",
32
35
  ".persona/harness.jsonc",
@@ -120,7 +123,10 @@ export function bootstrapUsage(invocation = "ph") {
120
123
  `- ${HARNESS_CONFIG_PATH}`,
121
124
  `- ${CONVENTIONS_DIR_PATH}`,
122
125
  `- ${RULES_DIR_PATH}`,
126
+ "- .agents/skills/persona-harness-*/",
127
+ "- .claude/skills/persona-harness-claude-*/",
123
128
  `- ${OPENCODE_CONFIG_PATH}`,
129
+ "- .opencode/skills/persona-harness-opencode-*/",
124
130
  `- ${GITIGNORE_PATH}`,
125
131
  `- ${ROOT_AGENT_INSTRUCTIONS_PATH}`,
126
132
  `- ${PROFILE_PATH}`,
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap-contract.js","sourceRoot":"","sources":["../../src/cli/bootstrap-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap-contract.js","sourceRoot":"","sources":["../../src/cli/bootstrap-contract.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@ export function runBackendBootstrap(options, flags) {
30
30
  if (!existsSync(join(projectDir, PERSONA_DIR))) {
31
31
  const initialized = initializeFreshBootstrapPersonaHarness({ projectDir, packageRoot: options.packageRoot });
32
32
  bootstrapWriteBoundary = initialized.boundary;
33
- actions.push("initialized .persona and OpenCode plugin config");
33
+ actions.push("initialized .persona, portable host skill adapters, and OpenCode plugin config");
34
34
  }
35
35
  else {
36
36
  if (readInitManifest(projectDir) === null) {
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap-runner.js","sourceRoot":"","sources":["../../src/cli/bootstrap-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAA;AAC7E,OAAO,EACL,2BAA2B,GAE5B,MAAM,mCAAmC,CAAA;AAE1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAA;AAC3E,OAAO,EACL,8BAA8B,EAC9B,6BAA6B,GAE9B,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,EACL,WAAW,EACX,mBAAmB,GAGpB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EACL,6BAA6B,EAC7B,iCAAiC,EACjC,gCAAgC,EAChC,YAAY,EACZ,6BAA6B,GAC9B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,6BAA6B,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAA;AACtG,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,sCAAsC,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC5G,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,+BAA+B,EAAE,MAAM,WAAW,CAAA;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9C,MAAM,UAAU,mBAAmB,CACjC,OAAyB,EACzB,KAA4B;IAE5B,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAC/D,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,IAAI,sBAA0D,CAAA;IAC9D,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;YAC/C,MAAM,WAAW,GAAG,sCAAsC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;YAC5G,sBAAsB,GAAG,WAAW,CAAC,QAAQ,CAAA;YAC7C,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;QACjE,CAAC;aAAM,CAAC;YACN,IAAI,gBAAgB,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC1C,wBAAwB,CAAC;oBACvB,qBAAqB,EAAE,OAAO,CAAC,sBAAsB,EAAE,IAAI,KAAK,QAAQ;wBACtE,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,OAAO,CAAC,sBAAsB,CAAC,eAAe,EAAE;wBACrG,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE;oBAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,UAAU;iBACX,CAAC,CAAA;gBACF,OAAO,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAA;YAC1E,CAAC;iBAAM,IAAI,OAAO,CAAC,sBAAsB,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7D,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,WAAW,CAAC,EAAE;oBAC9C,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,UAAU;iBACX,CAAC,CAAA;gBACF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,6BAA6B,EAAE,CAAA;YACpE,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;YACvC,sBAAsB,GAAG,gCAAgC,CAAC,UAAU,CAAC,CAAA;QACvE,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,6BAA6B,EAAE,CAAA;IACxC,CAAC;IACD,IAAI,sBAAsB,KAAK,SAAS;QAAE,OAAO,6BAA6B,EAAE,CAAA;IAEhF,MAAM,cAAc,GAAG,sBAAsB,CAAA;IAC7C,IAAI,CAAC;QACH,OAAO,cAAc,CAAC,mBAAmB,CAAC,GAAG,EAAE;YAC7C,MAAM,kBAAkB,GAAG,GAAG,CAAA;YAC9B,MAAM,YAAY,GAAG,8BAA8B,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAA;YACvF,MAAM,gBAAgB,GAAkC;gBACtD,OAAO,EAAE,OAAO,CAAC,sBAAsB,KAAK,SAAS;uBAChD,KAAK,CAAC,MAAM;uBACZ,KAAK,CAAC,uBAAuB;uBAC7B,KAAK,CAAC,iBAAiB;gBAC5B,QAAQ,EAAE,KAAK,CAAC,mBAAmB,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,iBAAiB;gBAC1G,OAAO,EAAE,KAAK,CAAC,KAAK,IAAI,YAAY,CAAC,MAAM,KAAK,OAAO;aACxD,CAAA;YACD,MAAM,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,KAAK,SAAS;gBACnE,CAAC,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAW;gBACtC,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,KAAK,OAAO;oBAC/C,CAAC,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,eAAe,EAAE,OAAO,CAAC,sBAAsB,CAAC,eAAe,EAAW;oBAC5G,CAAC,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,eAAe,EAAE,OAAO,CAAC,sBAAsB,CAAC,eAAe,EAAW,CAAA;YACjH,MAAM,aAAa,GAAG,6BAA6B,CACjD,cAAc,EACd,gBAAgB,EAChB,gBAAgB,CACjB,CAAA;YACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,OAAO,GAAG,+BAA+B,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAA;gBACnF,IAAI,OAAO,KAAK,SAAS;oBAAE,OAAO,OAAO,CAAA;gBACzC,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;YACrD,CAAC;YACD,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC;gBAClC,MAAM,OAAO,GAAG,6BAA6B,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAA;gBACjF,IAAI,OAAO,KAAK,SAAS;oBAAE,OAAO,OAAO,CAAA;gBACzC,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;YACnD,CAAC;YACD,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,uBAAuB,CACrC,kBAAkB,EAClB,iBAAiB,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC,UAAU,EAChE,cAAc,CACf,CAAA;gBACD,IAAI,OAAO,KAAK,SAAS;oBAAE,OAAO,OAAO,CAAA;gBACzC,OAAO,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAA;YACjG,CAAC;YACD,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,uBAAuB,CAAC,kBAAkB,EAAE,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;gBAChG,IAAI,OAAO,KAAK,SAAS;oBAAE,OAAO,OAAO,CAAA;gBACzC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;YAC9C,CAAC;YACD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,mBAAmB,CAAC,kBAAkB,EAAE,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;gBAC5F,IAAI,OAAO,KAAK,SAAS;oBAAE,OAAO,OAAO,CAAA;gBACzC,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;YACzC,CAAC;YACD,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,wBAAwB,CAAC,kBAAkB,EAAE;oBAC1D,sBAAsB,EAAE,cAAc;oBACtC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;oBACxC,WAAW,EAAE,OAAO,CAAC,WAAW;iBACjC,CAAC,CAAA;gBACF,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;oBAAE,OAAO,MAAM,CAAC,MAAM,CAAA;gBACnD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB;oBACjC,CAAC,CAAC,8CAA8C;oBAChD,CAAC,CAAC,gEAAgE,CAAC,CAAA;YACvE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAA;YACrE,CAAC;YACD,IAAI,OAAO,CAAC,sBAAsB,KAAK,SAAS,EAAE,CAAC;gBACjD,uBAAuB,CAAC,cAAc,CAAC,CAAA;gBACvC,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAA;YACzD,CAAC;YAED,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAG,gBAAgB,CAC7B,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,EACnC,EAAE,sBAAsB,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,EAC1E,IAAI,CACL,CAAA;gBACD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,iCAAiC,CAAC,CAAA;gBAC3F,IAAI,OAAO,KAAK,SAAS;oBAAE,OAAO,OAAO,CAAA;YAC3C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,gBAAgB,CAAC,CAAA;YAC/C,CAAC;YAED,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAC1E,MAAM,MAAM,GAAG,gBAAgB,CAC7B,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAC5C,EAAE,sBAAsB,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,EAC1E,IAAI,CACL,CAAA;gBACD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,gCAAgC,CAAC,CAAA;gBACzF,IAAI,OAAO,KAAK,SAAS;oBAAE,OAAO,OAAO,CAAA;YAC3C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,GAAG,mBAAmB,iBAAiB,CAAC,CAAA;YACvD,CAAC;YAED,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChE,MAAM,MAAM,GAAG,cAAc,CAC3B,CAAC,eAAe,CAAC,EACjB,EAAE,sBAAsB,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,EAC1E,IAAI,CACL,CAAA;gBACD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,4CAA4C,CAAC,CAAA;gBACnG,IAAI,OAAO,KAAK,SAAS;oBAAE,OAAO,OAAO,CAAA;YAC3C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,iBAAiB,CAAC,CAAA;gBAC3C,MAAM,QAAQ,GAAG,+BAA+B,CAAC;oBAC/C,sBAAsB,EAAE,cAAc;oBACtC,UAAU,EAAE,kBAAkB;iBAC/B,CAAC,CAAA;gBACF,KAAK,MAAM,IAAI,IAAI,QAAQ;oBAAE,OAAO,CAAC,IAAI,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAA;YACzF,CAAC;YAED,cAAc,CAAC,MAAM,EAAE,CAAA;YACvB,MAAM,gBAAgB,GAAG,iCAAiC,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAA;YACvF,IAAI,gBAAgB,KAAK,SAAS;gBAAE,OAAO,gBAAgB,CAAA;YAC3D,cAAc,CAAC,MAAM,EAAE,CAAA;YAEvB,MAAM,sBAAsB,GAAG,6BAA6B,CAC1D,cAAc,EACd,OAAO,EACP,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,iBAAiB,CACxB,CAAA;YACD,IAAI,sBAAsB,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;YAC9E,8BAA8B,CAAC,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAA;YAEjG,OAAO,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,2BAA2B,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;YACvF,OAAO,6BAA6B,EAAE,CAAA;QACxC,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;YAAS,CAAC;QACT,cAAc,CAAC,KAAK,EAAE,CAAA;IACxB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"bootstrap-runner.js","sourceRoot":"","sources":["../../src/cli/bootstrap-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { InitTarget } from "./init-transaction.js";
2
+ export type HostSkillLayout = {
3
+ readonly id: "agents" | "claude" | "opencode";
4
+ readonly namePrefix: string;
5
+ readonly openCodeAutoinvoke: boolean;
6
+ readonly root: string;
7
+ };
8
+ export declare const HOST_SKILL_LAYOUTS: readonly [{
9
+ readonly id: "agents";
10
+ readonly namePrefix: "persona-harness";
11
+ readonly openCodeAutoinvoke: false;
12
+ readonly root: ".agents/skills";
13
+ }, {
14
+ readonly id: "claude";
15
+ readonly namePrefix: "persona-harness-claude";
16
+ readonly openCodeAutoinvoke: false;
17
+ readonly root: ".claude/skills";
18
+ }, {
19
+ readonly id: "opencode";
20
+ readonly namePrefix: "persona-harness-opencode";
21
+ readonly openCodeAutoinvoke: true;
22
+ readonly root: ".opencode/skills";
23
+ }];
24
+ export declare function isHostSkillAdapterTarget(relativePath: string): boolean;
25
+ export declare function buildHostSkillAdapterTargets(packageRoot: string): readonly InitTarget[];
@@ -0,0 +1,147 @@
1
+ import { lstatSync, readFileSync } from "node:fs";
2
+ import { join, relative, resolve, sep } from "node:path";
3
+ import { listPersonaSharedSkillsFromPackageRoot, } from "../runtime/persona-shared-skill-catalog.js";
4
+ import { InitManifestError } from "./init-manifest.js";
5
+ export const HOST_SKILL_LAYOUTS = [
6
+ {
7
+ id: "agents",
8
+ namePrefix: "persona-harness",
9
+ openCodeAutoinvoke: false,
10
+ root: ".agents/skills",
11
+ },
12
+ {
13
+ id: "claude",
14
+ namePrefix: "persona-harness-claude",
15
+ openCodeAutoinvoke: false,
16
+ root: ".claude/skills",
17
+ },
18
+ {
19
+ id: "opencode",
20
+ namePrefix: "persona-harness-opencode",
21
+ openCodeAutoinvoke: true,
22
+ root: ".opencode/skills",
23
+ },
24
+ ];
25
+ const HOST_SKILL_ROOTS = HOST_SKILL_LAYOUTS.map((layout) => `${layout.root}/`);
26
+ const SHARED_SKILLS_ROOT = "packages/shared-skills";
27
+ function isRecord(value) {
28
+ return value !== null && typeof value === "object" && !Array.isArray(value);
29
+ }
30
+ function sourceStat(path) {
31
+ try {
32
+ return lstatSync(path);
33
+ }
34
+ catch {
35
+ throw new InitManifestError("Persona shared-skill source is unavailable; no files were changed.");
36
+ }
37
+ }
38
+ function assertSafeSourceFile(packageRoot, relativePath) {
39
+ const root = resolve(packageRoot);
40
+ const path = resolve(root, relativePath);
41
+ const escaped = relative(root, path);
42
+ if (escaped === ".." || escaped.startsWith(`..${sep}`) || escaped.startsWith(sep)) {
43
+ throw new InitManifestError("Persona shared-skill source escapes the package root; no files were changed.");
44
+ }
45
+ const rootStat = sourceStat(root);
46
+ if (!rootStat.isDirectory() || rootStat.isSymbolicLink()) {
47
+ throw new InitManifestError("Persona shared-skill package root is unsafe; no files were changed.");
48
+ }
49
+ const segments = relativePath.split("/");
50
+ let current = root;
51
+ for (const [index, segment] of segments.entries()) {
52
+ current = join(current, segment);
53
+ const stat = sourceStat(current);
54
+ if (stat.isSymbolicLink()) {
55
+ throw new InitManifestError("Persona shared-skill source contains a symbolic link; no files were changed.");
56
+ }
57
+ if (index < segments.length - 1 && !stat.isDirectory()) {
58
+ throw new InitManifestError("Persona shared-skill source parent is invalid; no files were changed.");
59
+ }
60
+ if (index === segments.length - 1 && !stat.isFile()) {
61
+ throw new InitManifestError("Persona shared-skill source is not a regular file; no files were changed.");
62
+ }
63
+ }
64
+ return path;
65
+ }
66
+ function readPackageVersion(packageRoot) {
67
+ const source = readFileSync(assertSafeSourceFile(packageRoot, "package.json"), "utf8");
68
+ let parsed;
69
+ try {
70
+ parsed = JSON.parse(source);
71
+ }
72
+ catch {
73
+ throw new InitManifestError("Persona shared-skill package binding is malformed; no files were changed.");
74
+ }
75
+ if (!isRecord(parsed) || parsed.name !== "persona-harness" || typeof parsed.version !== "string") {
76
+ throw new InitManifestError("Persona shared-skill package binding is unavailable; no files were changed.");
77
+ }
78
+ return parsed.version;
79
+ }
80
+ function readCanonicalSkillSource(packageRoot, skill) {
81
+ const source = readFileSync(assertSafeSourceFile(packageRoot, `${SHARED_SKILLS_ROOT}/${skill.entry}`), "utf8");
82
+ if (!source.startsWith("---\n")) {
83
+ throw new InitManifestError("Persona shared-skill source front matter is malformed; no files were changed.");
84
+ }
85
+ const closing = source.indexOf("\n---\n", 4);
86
+ if (closing < 4) {
87
+ throw new InitManifestError("Persona shared-skill source front matter is malformed; no files were changed.");
88
+ }
89
+ const frontMatter = source.slice(4, closing);
90
+ const descriptionLine = frontMatter.split("\n").find((line) => line.startsWith("description: "));
91
+ const description = descriptionLine?.slice("description: ".length).trim();
92
+ const body = source.slice(closing + "\n---\n".length).trim();
93
+ if (description === undefined || description.length === 0 || body.length === 0) {
94
+ throw new InitManifestError("Persona shared-skill source metadata is incomplete; no files were changed.");
95
+ }
96
+ return { body, description };
97
+ }
98
+ function renderHostSkillAdapter(layout, skill, source, packageVersion) {
99
+ const name = `${layout.namePrefix}-${skill.id}`;
100
+ return Buffer.from([
101
+ "---",
102
+ `name: ${name}`,
103
+ `description: ${JSON.stringify(source.description)}`,
104
+ 'license: "Apache-2.0"',
105
+ `compatibility: ${JSON.stringify(layout.id === "agents" ? "Codex and Antigravity" : layout.id === "claude" ? "Claude Code" : "OpenCode")}`,
106
+ "metadata:",
107
+ ` persona-harness/canonical-skill: ${skill.id}`,
108
+ ` persona-harness/adapter-layout: ${layout.id}`,
109
+ ` persona-harness/adapter-version: ${packageVersion}`,
110
+ ` opencode/autoinvoke: \"${layout.openCodeAutoinvoke ? "true" : "false"}\"`,
111
+ "---",
112
+ "",
113
+ `# Persona Harness Adapter: ${skill.title}`,
114
+ "",
115
+ "This adapter exposes the canonical Persona Harness skill to this host only. Discovery alone does not authorize workflow, shell, network, GitHub, authority, evidence, or external actions.",
116
+ "",
117
+ source.body,
118
+ "",
119
+ ].join("\n"), "utf8");
120
+ }
121
+ export function isHostSkillAdapterTarget(relativePath) {
122
+ return HOST_SKILL_ROOTS.some((root) => relativePath.startsWith(root));
123
+ }
124
+ export function buildHostSkillAdapterTargets(packageRoot) {
125
+ assertSafeSourceFile(packageRoot, `${SHARED_SKILLS_ROOT}/catalog.json`);
126
+ const packageVersion = readPackageVersion(packageRoot);
127
+ let skills;
128
+ try {
129
+ skills = listPersonaSharedSkillsFromPackageRoot(packageRoot);
130
+ }
131
+ catch {
132
+ throw new InitManifestError("Persona shared-skill catalog is unavailable; no files were changed.");
133
+ }
134
+ const targets = [];
135
+ for (const layout of HOST_SKILL_LAYOUTS) {
136
+ for (const skill of skills) {
137
+ const source = readCanonicalSkillSource(packageRoot, skill);
138
+ const name = `${layout.namePrefix}-${skill.id}`;
139
+ targets.push({
140
+ relativePath: `${layout.root}/${name}/SKILL.md`,
141
+ nextBytes: renderHostSkillAdapter(layout, skill, source, packageVersion),
142
+ });
143
+ }
144
+ }
145
+ return targets.sort((left, right) => left.relativePath.localeCompare(right.relativePath));
146
+ }
147
+ //# sourceMappingURL=host-skill-materializer.js.map