@awebai/oats 0.25.9 → 0.27.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 (183) hide show
  1. package/README.md +8 -6
  2. package/bin/oats.mjs +648 -1755
  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 +229 -58
  21. package/docs/capability-manifest.schema.json +29 -9
  22. package/docs/configuration.md +17 -5
  23. package/docs/conventions.md +18 -28
  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 +604 -271
  39. package/docs/desktop-instance-start.md +3 -3
  40. package/docs/desktop.md +7 -13
  41. package/docs/execution-targets.md +16 -18
  42. package/docs/first-team.md +15 -18
  43. package/docs/implementation.md +31 -62
  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 +30 -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 +76 -53
  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/release-notes/v0.27.0.md +100 -0
  60. package/docs/schedules.md +54 -132
  61. package/docs/servers.md +4 -4
  62. package/docs/soul.schema.json +11 -4
  63. package/docs/souls-and-instances.md +60 -47
  64. package/docs/workspaces.md +80 -58
  65. package/injects/instance-boundary.md +2 -2
  66. package/injects/work-attached.md +1 -1
  67. package/injects/work-workspace.md +2 -2
  68. package/lib/{portable-files.mjs → bounded-read.mjs} +6 -6
  69. package/lib/{portable-values.mjs → canonical-json.mjs} +3 -12
  70. package/lib/capability-contract.mjs +110 -0
  71. package/lib/config-data.mjs +2 -2
  72. package/lib/core.mjs +947 -5023
  73. package/lib/deprecation.mjs +24 -0
  74. package/lib/digest.mjs +12 -0
  75. package/lib/instance-inspect.mjs +397 -0
  76. package/lib/instance-lifecycle.mjs +3 -4
  77. package/lib/instance-resolution.mjs +212 -26
  78. package/lib/instruction-composition.mjs +0 -20
  79. package/lib/materialize.mjs +6 -4
  80. package/lib/operator-dispatch.mjs +33 -13
  81. package/lib/packages.mjs +25 -190
  82. package/lib/process-group.mjs +1 -1
  83. package/lib/provider-binding.mjs +4 -2
  84. package/lib/provider-reasons.mjs +3 -68
  85. package/lib/remote.mjs +1 -1
  86. package/lib/resolve.mjs +204 -68
  87. package/lib/schedule.mjs +136 -292
  88. package/lib/servers.mjs +70 -38
  89. package/lib/{portable-shape.mjs → shape.mjs} +4 -3
  90. package/lib/tree-copy.mjs +44 -0
  91. package/lib/workspace.mjs +132 -20
  92. package/package-catalog.json +6 -6
  93. package/package.json +1 -1
  94. package/packages/record/lib/session-roots.mjs +8 -6
  95. package/skills/integration-authoring/SKILL.md +48 -40
  96. package/skills/oats-getting-started/SKILL.md +105 -110
  97. package/skills/oats-support/SKILL.md +2 -2
  98. package/skills/soul-craft/SKILL.md +13 -6
  99. package/bin/oats-pi-sdk-host.mjs +0 -17
  100. package/docs/2026-09-03-architecture-proposal.md +0 -642
  101. package/docs/artifact-approvals.schema.json +0 -7
  102. package/docs/captured-invocation-context.schema.json +0 -7
  103. package/docs/captured-resolution.schema.json +0 -7
  104. package/docs/design/package-engine-contract.md +0 -813
  105. package/docs/design/package-runtime-api.md +0 -588
  106. package/docs/desktop-succession.md +0 -57
  107. package/docs/execution-capsule.schema.json +0 -108
  108. package/docs/first-team-demo.md +0 -92
  109. package/docs/knowledge-migration.md +0 -147
  110. package/docs/migration-from-oas.md +0 -103
  111. package/docs/oats-config.schema.json +0 -172
  112. package/docs/oats-lock-v3.schema.json +0 -7
  113. package/docs/oats-lock.schema.json +0 -175
  114. package/docs/operating-team-migration.md +0 -470
  115. package/docs/portable.schema.json +0 -2512
  116. package/docs/provider-check-input.schema.json +0 -7
  117. package/docs/rebuild-to-v2.md +0 -511
  118. package/docs/workspace-adoption.md +0 -74
  119. package/injects/framework-workspace.md +0 -7
  120. package/injects/local-soul.md +0 -19
  121. package/injects/oats-portable.md +0 -20
  122. package/injects/oats.md +0 -11
  123. package/injects/portable-instance-boundary.md +0 -39
  124. package/injects/portable-work-directory.md +0 -29
  125. package/lib/artifact-approvals.mjs +0 -120
  126. package/lib/artifact-tree.mjs +0 -141
  127. package/lib/capability-artifacts.mjs +0 -179
  128. package/lib/capability-execution.mjs +0 -15
  129. package/lib/capability-inputs.mjs +0 -39
  130. package/lib/capability-provenance.mjs +0 -231
  131. package/lib/captured-action-shape.mjs +0 -21
  132. package/lib/captured-admission-shape.mjs +0 -20
  133. package/lib/captured-binding-file.mjs +0 -36
  134. package/lib/captured-dispatch.mjs +0 -66
  135. package/lib/captured-instance-index.mjs +0 -277
  136. package/lib/captured-invocation-context.mjs +0 -130
  137. package/lib/captured-launch-request.mjs +0 -66
  138. package/lib/captured-operation-process.mjs +0 -15
  139. package/lib/captured-pi-custody.mjs +0 -29
  140. package/lib/captured-pi-host.mjs +0 -167
  141. package/lib/captured-pi-outcome.mjs +0 -172
  142. package/lib/captured-resolutions.mjs +0 -275
  143. package/lib/captured-scaffold.mjs +0 -87
  144. package/lib/captured-selector.mjs +0 -28
  145. package/lib/captured-session-backend.mjs +0 -52
  146. package/lib/captured-source-receipt-file.mjs +0 -72
  147. package/lib/helper-injection-policy.mjs +0 -104
  148. package/lib/legacy-lock-codec.mjs +0 -106
  149. package/lib/manifest-settings.mjs +0 -84
  150. package/lib/package-closure.mjs +0 -48
  151. package/lib/package-materialization.mjs +0 -83
  152. package/lib/pi-sdk-host.mjs +0 -229
  153. package/lib/portable-artifacts.mjs +0 -115
  154. package/lib/portable-choices.mjs +0 -82
  155. package/lib/portable-composition.mjs +0 -136
  156. package/lib/portable-digest.mjs +0 -105
  157. package/lib/portable-identity.mjs +0 -40
  158. package/lib/portable-lock.mjs +0 -117
  159. package/lib/portable-onboarding-request.mjs +0 -49
  160. package/lib/portable-onboarding.mjs +0 -256
  161. package/lib/portable-package-preparation.mjs +0 -188
  162. package/lib/portable-policy.mjs +0 -44
  163. package/lib/portable-soul.mjs +0 -42
  164. package/lib/portable-state.mjs +0 -80
  165. package/lib/prepare-composition.mjs +0 -170
  166. package/lib/prepared-bindings.mjs +0 -92
  167. package/lib/prepared-resources.mjs +0 -127
  168. package/lib/provider-binding-broker.mjs +0 -65
  169. package/lib/provider-binding-wire.mjs +0 -116
  170. package/lib/readiness.mjs +0 -225
  171. package/lib/repository-observation.mjs +0 -226
  172. package/lib/resolution-shape.mjs +0 -393
  173. package/lib/schedule-capsule.mjs +0 -206
  174. package/lib/soul-constraints.mjs +0 -40
  175. package/lib/source-projection.mjs +0 -84
  176. package/lib/source-spec.mjs +0 -189
  177. package/lib/workspace-definition.mjs +0 -126
  178. package/lib/workspace-discovery.mjs +0 -146
  179. package/skills/oats/SKILL.md +0 -162
  180. package/skills/oats-config/SKILL.md +0 -164
  181. package/skills/oats-packages/SKILL.md +0 -184
  182. package/skills/oats-portable/SKILL.md +0 -115
  183. 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