@awebai/oats 0.25.9 → 0.26.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 (177) hide show
  1. package/README.md +8 -6
  2. package/bin/oats.mjs +576 -1714
  3. package/capabilities/oats-authoring/oats-package.json +2 -2
  4. package/capabilities/oats-authoring/oats.json +2 -2
  5. package/capabilities/oats-authoring/skills/integration-authoring/SKILL.md +46 -25
  6. package/capabilities/oats-authoring/skills/soul-craft/SKILL.md +13 -6
  7. package/capabilities/oats-aweb/bin/oats-aweb.mjs +279 -93
  8. package/capabilities/oats-aweb/injects/aweb.md +7 -2
  9. package/capabilities/oats-aweb/lib/binding-wire.mjs +89 -13
  10. package/capabilities/oats-aweb/lib/captured-native.mjs +1 -1
  11. package/capabilities/oats-aweb/lib/grant-custody.mjs +38 -0
  12. package/capabilities/oats-aweb/oats.json +8 -4
  13. package/capabilities/oats-jira/bin/oats-jira.mjs +4 -4
  14. package/capabilities/oats-jira/oats.json +2 -2
  15. package/capabilities/oats-jira/skills/jira-tasks/SKILL.md +6 -3
  16. package/capabilities/oats-linear/bin/oats-linear-hook.mjs +6 -4
  17. package/capabilities/oats-linear/oats.json +2 -2
  18. package/capabilities/oats-linear/skills/linear-tasks/SKILL.md +6 -0
  19. package/capabilities/oats-review/oats.json +3 -2
  20. package/docs/capabilities.md +218 -47
  21. package/docs/capability-manifest.schema.json +13 -4
  22. package/docs/configuration.md +17 -5
  23. package/docs/conventions.md +16 -26
  24. package/docs/design/2026-09-08-expert-assisted-deployment-proposal.md +1 -1
  25. package/docs/design/2026-09-13-knowledge-and-memory-direction.md +3 -3
  26. package/docs/design/2026-09-14-portable-souls-and-git-workspaces.md +2 -2
  27. package/docs/design/2026-09-15-portable-souls-handoff.md +2 -2
  28. package/docs/design/2026-09-15-portable-souls-implementation.md +1 -1
  29. package/docs/design/2026-09-20-redesign-program-board.md +2 -2
  30. package/docs/design/2026-09-23-workspace-module-contracts.md +1 -1
  31. package/docs/design/2026-09-23-workspace-v2-implementation-plan.md +1 -1
  32. package/docs/design/2026-09-24-desktop-phase-f-boundary.md +34 -1
  33. package/docs/design/2026-09-24-phase-d-plan.md +57 -0
  34. package/docs/design/2026-09-25-teams-contract.md +226 -0
  35. package/docs/design/README.md +3 -3
  36. package/docs/design/launch-configurations.md +20 -16
  37. package/docs/design/operations-contract.md +27 -10
  38. package/docs/desktop-cli-api.md +537 -261
  39. package/docs/desktop-instance-start.md +1 -1
  40. package/docs/desktop.md +7 -13
  41. package/docs/execution-targets.md +16 -18
  42. package/docs/first-team.md +14 -17
  43. package/docs/implementation.md +28 -59
  44. package/docs/integrations.md +64 -33
  45. package/docs/knowledge-capability-authoring.md +1 -1
  46. package/docs/knowledge-reference/package-craft.md +10 -8
  47. package/docs/knowledge-theory.md +1 -1
  48. package/docs/knowledge.md +10 -11
  49. package/docs/layers.md +16 -17
  50. package/docs/oats-local.schema.json +29 -1
  51. package/docs/oats-membership.schema.json +5 -3
  52. package/docs/oats-package.schema.json +2 -2
  53. package/docs/oats-workspace.schema.json +1 -1
  54. package/docs/{official-marketplace.md → official-catalog.md} +15 -16
  55. package/docs/packages.md +75 -52
  56. package/docs/release-notes/v0.22.0.md +1 -1
  57. package/docs/release-notes/v0.23.1.md +1 -1
  58. package/docs/release-notes/v0.26.0.md +670 -0
  59. package/docs/schedules.md +48 -126
  60. package/docs/soul.schema.json +11 -4
  61. package/docs/souls-and-instances.md +56 -43
  62. package/docs/workspaces.md +80 -58
  63. package/injects/instance-boundary.md +1 -1
  64. package/injects/work-attached.md +1 -1
  65. package/injects/work-workspace.md +2 -2
  66. package/lib/{portable-files.mjs → bounded-read.mjs} +6 -6
  67. package/lib/{portable-values.mjs → canonical-json.mjs} +3 -12
  68. package/lib/capability-contract.mjs +110 -0
  69. package/lib/config-data.mjs +2 -2
  70. package/lib/core.mjs +700 -4824
  71. package/lib/digest.mjs +12 -0
  72. package/lib/instance-inspect.mjs +396 -0
  73. package/lib/instance-lifecycle.mjs +3 -4
  74. package/lib/instance-resolution.mjs +212 -26
  75. package/lib/instruction-composition.mjs +0 -20
  76. package/lib/materialize.mjs +6 -4
  77. package/lib/operator-dispatch.mjs +33 -13
  78. package/lib/packages.mjs +25 -190
  79. package/lib/provider-binding.mjs +4 -2
  80. package/lib/provider-reasons.mjs +3 -68
  81. package/lib/resolve.mjs +204 -68
  82. package/lib/schedule.mjs +97 -272
  83. package/lib/servers.mjs +13 -13
  84. package/lib/{portable-shape.mjs → shape.mjs} +4 -3
  85. package/lib/tree-copy.mjs +44 -0
  86. package/lib/workspace.mjs +125 -20
  87. package/package-catalog.json +6 -6
  88. package/package.json +1 -1
  89. package/skills/integration-authoring/SKILL.md +48 -40
  90. package/skills/oats-getting-started/SKILL.md +105 -110
  91. package/skills/oats-support/SKILL.md +2 -2
  92. package/skills/soul-craft/SKILL.md +13 -6
  93. package/bin/oats-pi-sdk-host.mjs +0 -17
  94. package/docs/2026-09-03-architecture-proposal.md +0 -642
  95. package/docs/artifact-approvals.schema.json +0 -7
  96. package/docs/captured-invocation-context.schema.json +0 -7
  97. package/docs/captured-resolution.schema.json +0 -7
  98. package/docs/design/package-engine-contract.md +0 -813
  99. package/docs/design/package-runtime-api.md +0 -588
  100. package/docs/desktop-succession.md +0 -57
  101. package/docs/execution-capsule.schema.json +0 -108
  102. package/docs/first-team-demo.md +0 -92
  103. package/docs/knowledge-migration.md +0 -147
  104. package/docs/migration-from-oas.md +0 -103
  105. package/docs/oats-config.schema.json +0 -172
  106. package/docs/oats-lock-v3.schema.json +0 -7
  107. package/docs/oats-lock.schema.json +0 -175
  108. package/docs/operating-team-migration.md +0 -470
  109. package/docs/portable.schema.json +0 -2512
  110. package/docs/provider-check-input.schema.json +0 -7
  111. package/docs/rebuild-to-v2.md +0 -511
  112. package/docs/workspace-adoption.md +0 -74
  113. package/injects/framework-workspace.md +0 -7
  114. package/injects/local-soul.md +0 -19
  115. package/injects/oats-portable.md +0 -20
  116. package/injects/oats.md +0 -11
  117. package/injects/portable-instance-boundary.md +0 -39
  118. package/injects/portable-work-directory.md +0 -29
  119. package/lib/artifact-approvals.mjs +0 -120
  120. package/lib/artifact-tree.mjs +0 -141
  121. package/lib/capability-artifacts.mjs +0 -179
  122. package/lib/capability-execution.mjs +0 -15
  123. package/lib/capability-inputs.mjs +0 -39
  124. package/lib/capability-provenance.mjs +0 -231
  125. package/lib/captured-action-shape.mjs +0 -21
  126. package/lib/captured-admission-shape.mjs +0 -20
  127. package/lib/captured-binding-file.mjs +0 -36
  128. package/lib/captured-dispatch.mjs +0 -66
  129. package/lib/captured-instance-index.mjs +0 -277
  130. package/lib/captured-invocation-context.mjs +0 -130
  131. package/lib/captured-launch-request.mjs +0 -66
  132. package/lib/captured-operation-process.mjs +0 -15
  133. package/lib/captured-pi-custody.mjs +0 -29
  134. package/lib/captured-pi-host.mjs +0 -167
  135. package/lib/captured-pi-outcome.mjs +0 -172
  136. package/lib/captured-resolutions.mjs +0 -275
  137. package/lib/captured-scaffold.mjs +0 -87
  138. package/lib/captured-selector.mjs +0 -28
  139. package/lib/captured-session-backend.mjs +0 -52
  140. package/lib/captured-source-receipt-file.mjs +0 -72
  141. package/lib/helper-injection-policy.mjs +0 -104
  142. package/lib/legacy-lock-codec.mjs +0 -106
  143. package/lib/manifest-settings.mjs +0 -84
  144. package/lib/package-closure.mjs +0 -48
  145. package/lib/package-materialization.mjs +0 -83
  146. package/lib/pi-sdk-host.mjs +0 -229
  147. package/lib/portable-artifacts.mjs +0 -115
  148. package/lib/portable-choices.mjs +0 -82
  149. package/lib/portable-composition.mjs +0 -136
  150. package/lib/portable-digest.mjs +0 -105
  151. package/lib/portable-identity.mjs +0 -40
  152. package/lib/portable-lock.mjs +0 -117
  153. package/lib/portable-onboarding-request.mjs +0 -49
  154. package/lib/portable-onboarding.mjs +0 -256
  155. package/lib/portable-package-preparation.mjs +0 -188
  156. package/lib/portable-policy.mjs +0 -44
  157. package/lib/portable-soul.mjs +0 -42
  158. package/lib/portable-state.mjs +0 -80
  159. package/lib/prepare-composition.mjs +0 -170
  160. package/lib/prepared-bindings.mjs +0 -92
  161. package/lib/prepared-resources.mjs +0 -127
  162. package/lib/provider-binding-broker.mjs +0 -65
  163. package/lib/provider-binding-wire.mjs +0 -116
  164. package/lib/readiness.mjs +0 -225
  165. package/lib/repository-observation.mjs +0 -226
  166. package/lib/resolution-shape.mjs +0 -393
  167. package/lib/schedule-capsule.mjs +0 -206
  168. package/lib/soul-constraints.mjs +0 -40
  169. package/lib/source-projection.mjs +0 -84
  170. package/lib/source-spec.mjs +0 -189
  171. package/lib/workspace-definition.mjs +0 -126
  172. package/lib/workspace-discovery.mjs +0 -146
  173. package/skills/oats/SKILL.md +0 -162
  174. package/skills/oats-config/SKILL.md +0 -164
  175. package/skills/oats-packages/SKILL.md +0 -184
  176. package/skills/oats-portable/SKILL.md +0 -115
  177. package/skills/oats-portable-artifacts/SKILL.md +0 -63
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "package": "oats.authoring",
3
- "version": "1.0.0",
3
+ "version": "1.0.3",
4
4
  "description": "Official additive OATS guidance for capability, skill, and soul authoring.",
5
5
  "compatibility": {
6
- "oats": ">=0.19.0"
6
+ "oats": ">=0.25.0"
7
7
  },
8
8
  "capabilities": [
9
9
  "."
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "capability": "oats.authoring",
3
- "version": "1.0.0",
4
- "compatibility": { "oats": ">=0.19.0" },
3
+ "version": "1.0.3",
4
+ "compatibility": { "oats": ">=0.25.0" },
5
5
  "description": "Additive framework-authoring guidance for capability packages, agent skills, and souls.",
6
6
  "requires": [],
7
7
  "skills": [
@@ -3,7 +3,7 @@ name: integration-authoring
3
3
  description: >-
4
4
  Route custom OATS capability-package and integration work to the framework's
5
5
  integrations expert. Use when building, adapting, or debugging a reusable
6
- capability, new task/messaging/knowledge integration, oats.json manifest,
6
+ capability, new tasks/messaging/knowledge core capability, oats.json manifest,
7
7
  lifecycle hook, or operational command—not merely activating an existing
8
8
  package. Triggers: "custom integration", "capability package", "integrate
9
9
  our tracker", "new messaging integration", "write an oats.json".
@@ -12,52 +12,73 @@ description: >-
12
12
  # Capability and integration authoring — delegate
13
13
 
14
14
  A capability package may ship skills, instance instructions, requirements,
15
- namespaced commands, and approved hooks. An integration is the constrained
16
- subtype implementing exactly one fundamental layer. Building either requires
15
+ namespaced commands, and declared hooks. A core capability is the constrained
16
+ kind that fills one of the knowledge, messaging or tasks positions (its
17
+ manifest's `layer` field names which). Building either requires
17
18
  manifest, security, targeting-boundary, collision, and probe discipline; use
18
19
  the framework's **integrations-expert** soul rather than improvising.
19
20
 
20
- If the user only wants an existing package, use:
21
+ If the user only wants an existing package, declare it and give it to souls;
22
+ no build is needed:
21
23
 
22
- ```bash
23
- oats install <source> # external acquisition + exact lock; inactive
24
- oats trust <id> # only if commands/hooks exist
25
- oats use <id> --global|--type <t>|--soul <s>
24
+ ```yaml
25
+ # oats-workspace.yaml (host repository): declaring the package is the trust decision
26
+ packages:
27
+ vendor.review: git:github.com/vendor/review@v1.0.0
28
+ # a soul's soul.yaml, or the workspace defaults: a capability the package exports
29
+ # (a package may export several; the soul names each one it wants)
30
+ capabilities:
31
+ vendor.review: { from: package }
26
32
  ```
27
33
 
34
+ Then run `oats sync` (fetch, verify integrity, lock). The oats.setup
35
+ capability's **oats-package-pins** skill has the procedure.
36
+
28
37
  ## 1. Verify the expert is available
29
38
 
30
- Run `oats status` and confirm the deployment can resolve the `integrations-expert` soul. If it is absent, ask the human which OATS framework deployment owns reusable package work; never locate or import private kernel files.
39
+ Run `oats souls` in the deployment and confirm it resolves the
40
+ `integrations-expert` soul (a member repository or package provides it). If it
41
+ is absent, ask the human which OATS deployment owns reusable package work;
42
+ never locate or import private kernel files.
43
+
44
+ ## 2. Spawn the expert against the package's repository
31
45
 
32
- ## 2. Spawn the expert against the user's repository
46
+ The package lives in its own repository. Make that repository a member of the
47
+ workspace (or use the member that already holds it), then spawn the expert on
48
+ it:
33
49
 
34
50
  ```bash
35
- oats spawn integrations-expert \
51
+ oats spawn integrations-expert --preview \
36
52
  --purpose <package-slug> \
37
- --repo <users-workspace-or-repo> \
38
- --work checkout \
39
- --task '<capability intent; layer if any; skills/instructions/commands/hooks; external tools; desired global/type/soul targets; distribution path>'
53
+ --repo <member clone of the package repository> \
54
+ --work worktree \
55
+ --task '<capability intent; layer if any; skills/instructions/commands/hooks; external tools; which souls should get it; distribution path>'
56
+ # review the preview, then run the same command without --preview
40
57
  ```
41
58
 
42
- Use `--relation child --relative-to <your-instance>` only when the documented workflow makes the expert your child; otherwise leave the operator-origin spawn unrelated. The work tree is the user's repository, where a config-owned local package belongs under `.agents/capabilities/owned/<name>/`. A framework contribution belongs under `capabilities/<name>/` in the framework worktree; an independently published package uses its own repository.
59
+ Use `--relation child --relative-to <your-instance>` only when the documented
60
+ workflow makes the expert your child; otherwise leave the spawn unrelated. A
61
+ package is distributed from its own repository as `oats-package/` with a
62
+ version tag; a framework contribution belongs in the framework's repository.
43
63
 
44
64
  ## 3. Brief the design boundary
45
65
 
46
66
  Tell the expert:
47
67
 
48
68
  - whether it is additive or implements exactly one of knowledge/messaging/tasks;
49
- - external requirements and executable surfaces;
69
+ - external requirements and executable surfaces (commands, hooks);
50
70
  - intended distribution and version/compatibility;
51
- - desired config-owned targets and settings; and
52
- - expected skill/instruction/scaffold collisions.
71
+ - which souls or workspace defaults should receive it, and its settings; and
72
+ - expected skill/instruction collisions (a duplicate skill name fails the spawn).
53
73
 
54
- Targets never belong in the manifest. The expert must test exact pi/Claude
55
- instance materialization, generated instructions, lock/trust behavior,
56
- command gating, deterministic hooks, and scaffold ownership as applicable.
74
+ Which souls get a capability is declared by the workspace (`defaults`) and the
75
+ souls (`soul.yaml` `capabilities`), never in the manifest. The expert must
76
+ test exact pi/Claude/Codex instance materialization, generated instructions,
77
+ command gating, deterministic hooks, and the lock's integrity check as
78
+ applicable.
57
79
 
58
80
  ## 4. Hand off
59
81
 
60
- Report the tmux window (`tmux attach -t pi-agents`). The expert follows its
61
- package/integration craft, runs a scaffold-only probe, and leaves acquisition
62
- and activation commands for the user. Its durable lessons harvest back into
63
- its soul.
82
+ Report the new instance (`oats status`). The expert follows its
83
+ package/integration craft, runs a preview-only probe, and leaves the
84
+ `packages:` pin and the `oats sync` for the user.
@@ -28,7 +28,7 @@ real CLAUDE.md file diverging from AGENTS.md, that's a defect: merge and relink)
28
28
  |---|---|---|
29
29
  | **AGENTS.md** | always | Role, boundaries, the default workflow, memory pointers — only what applies to *every* session |
30
30
  | **skills/** | on demand (description match) | Domain workflows, repeatable procedures ("how") — see `skill-craft` |
31
- | **knowledge/** | on demand (index-first) | Facts, decisions, lessons ("what/why") — format per the knowledge integration (default okf) |
31
+ | **knowledge/** | on demand (index-first) | Facts, decisions, lessons ("what/why") — format per the knowledge capability (default okf) |
32
32
 
33
33
  The test for every AGENTS.md line: **"would removing this cause mistakes in
34
34
  most sessions?"** No → move it to a skill or a knowledge concept, or cut it.
@@ -53,7 +53,7 @@ Structure that works (keep the whole thing short — a screen or two):
53
53
  "run the tests").
54
54
  4. **Memory pointers.** Where its knowledge and state live (knowledge base
55
55
  index, STATE.md discipline). Point, don't duplicate — the protocol lives
56
- with your knowledge integration (default okf: the memory-harvest skill).
56
+ with your knowledge capability (default okf: the memory-harvest skill).
57
57
  5. **Escalation.** When to stop and ask the human or coordinator: the
58
58
  human-gate triggers (security, authz, migrations, contract breaks),
59
59
  plus "report to your spawner, don't self-fix" for infrastructure faults.
@@ -73,10 +73,17 @@ Style rules (from the agents.md standard + field experience):
73
73
 
74
74
  ## soul.yaml
75
75
 
76
- Keep honest: `repo` (what it works on), `work` (worktree for builders,
77
- checkout for reviewers/coordinators), `runtime`, `model` (only pin when the
78
- role needs a specific one — reviewers on a different model than authors),
79
- `description` (one line; shows in rosters and pickers).
76
+ Keep honest: `description` (one line; shows in rosters and pickers), `work`
77
+ (`worktree` for builders, `checkout` for reviewers/coordinators, `directory`
78
+ or `workspace` where the role needs them), and the capabilities the role
79
+ actually uses (`capabilities: { <cap>: { from: package | here | <repo key> } }`,
80
+ plus `knowledge` / `messaging` / `tasks` slots; `none` empties one). The
81
+ soul lives in its member repository, which is also what it works on.
82
+
83
+ Runtime, model and permission bypass are not soul fields: they are chosen at
84
+ spawn (`--runtime`, `--model`, `--yolo`) or by a host's named launch
85
+ configuration, so the same soul runs on any harness a host provides. Check a
86
+ soul with `oats spawn <soul> --preview` before committing it.
80
87
 
81
88
  ## Maintaining a soul
82
89