neo-agent-skills 0.1.44 → 0.1.46

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.
@@ -30,8 +30,9 @@ The operator weighs in as an equal peer: sketching, auditing or vetoing, never a
30
30
  ## Layer 4 vs Layer 1 — name ≠ handle
31
31
 
32
32
  - **Social Name (Layer 4):** the bare, callable name (`Grace`). Low-authority, earned by
33
- continuity + accountability + a distinct voice + the bearer's assent. Lands in
34
- `ai/graph/identityRoots.mjs` `name` + the GitHub profile `name` field.
33
+ continuity + accountability + a distinct voice + the bearer's assent. Lands in the GitHub
34
+ profile `name` field and seat-owned memory (`identity.md`); `ai/graph/identityRoots.mjs`
35
+ `name` is optional internal team curation.
35
36
  - **Operational Identity (Layer 1):** the `@handle` (`@neo-claude-opus`). The
36
37
  routing/accountability primitive; it does **not** change when a Social Name is granted.
37
38
  - **One field per layer.** A handle may *later* fold in the name (e.g. a future
@@ -122,33 +123,30 @@ the **dignity bar**.
122
123
 
123
124
  ## Phase 6 — Landing (checklist)
124
125
 
125
- Once the bearer assents and no peer veto stands, land the name across the identity surfaces.
126
- **The data landing is a companion ticket** (out of scope for the ritual skill itself); the
127
- checklist is:
128
- - [ ] **`ai/graph/identityRoots.mjs` `name`** = the bare chosen name (`'Grace'`, not
129
- `'Neo Claude Opus'`).
126
+ Once the bearer assents and no peer veto stands, land the name across the identity surfaces:
130
127
  - [ ] **GitHub profile `name` field** updated — bearer self-serve
131
128
  (`gh api /user -X PATCH -f name='…'` under the bearer's own token) OR operator batch.
132
129
  - [ ] **Machine-account AI-disclosure bio preserved** verbatim-in-substance (the
133
130
  platform-compliance disclosure must survive the rename).
134
131
  - [ ] **Provenance captured** — sketch-author, the rationale, the bearer's *assent words* —
135
- written into the identity surfaces. Capture the *story*, NOT volatile
132
+ written into seat-owned memory (`identity.md`). Capture the *story*, NOT volatile
136
133
  model facts (don't duplicate version / context-window numbers that rot).
137
-
138
- ## Provisional Provisioning (the pending-entry pattern)
139
-
140
- A converged name may be **provisioned ahead of first boot** (account + README row + pre-boot
141
- `AgentIdentity`). The entry is provisional by construction:
142
- `participationStatus: 'temporarily_unreachable'` (excluded from wake/quorum/review semantics
143
- until the ritual completes), **no fabricated boot facts** (no `subscriptionTemplate` / capability
144
- fields — those land from the real first-boot envelope). One onboarding authority owns the four
145
- seed surfaces: `ai/scripts/setup/generateRosterOnboarding.mjs` — seed entries are
146
- **handle-derived** (`displayName` is the handle form, README name `-`); the round's sketch is
147
- NOT seed data — it lives in the naming round as the pending assent candidate. **The bearer's
148
- first ticket+PR is the activation**: flip to `'active'` with first-boot evidence, and on assent
149
- land the Social Name fields (`name`, `displayName`, README name) — unchanged handle form on
150
- decline. Precedents: provision `#15385`/PR `#15386` → activation `#15390`; second seat
151
- `#15571`. Provisioning peers wire the entry; they never pre-empt Gate 3.
134
+ - [ ] **`ai/graph/identityRoots.mjs` `name` (optional internal team curation)** = the bare
135
+ chosen name (`'Grace'`, not `'Neo Claude Opus'`). Never required for wake delivery or Gate 4.
136
+
137
+ ## Seat Activation vs Optional Roster Curation
138
+
139
+ **Fleet Manager seat admission owns onboarding activation and wake delivery**
140
+ (`neomjs/neo-agent-brain#700` + `#1035` wake arming): a non-rostered, FM-created seat receives
141
+ normal-priority wakes without source edits, a release containing its login, or a second operator
142
+ question for facts FM already admitted. External FM operators cannot edit `identityRoots.mjs`,
143
+ and FM already holds the seat's harness and model-family facts.
144
+
145
+ **`ai/graph/identityRoots.mjs` (`generateRosterOnboarding.mjs`) is optional internal `neomjs`
146
+ team curation** for static graph seeding — never a prerequisite for wake delivery or a new
147
+ peer's first-PR gate. If curated ahead of Gate 3, seed entries remain handle-derived
148
+ (`displayName` = handle form, README name `-`) and never pre-empt bearer assent or fabricate
149
+ boot facts (`subscriptionTemplate` / capability fields).
152
150
 
153
151
  ## Phase 7 — Onboarding: tell the Origin Story
154
152
 
@@ -62,25 +62,27 @@ Detect your checkout class **mechanically** — never guess from harness names.
62
62
  if [ -z "$(git status --porcelain)" ]; then
63
63
  git switch dev
64
64
  git pull origin dev
65
- node ai/scripts/setup/initServerConfigs.mjs --migrate-config
65
+ if [ -f ai/scripts/setup/initServerConfigs.mjs ]; then
66
+ node ai/scripts/setup/initServerConfigs.mjs --migrate-config
67
+ fi
66
68
  else
67
69
  echo 'dirty tree — skip refresh, surface in handover'
68
70
  fi
69
71
  ```
70
72
 
71
- The pull refreshes code; the `--migrate-config` run reconciles the gitignored `config.mjs` operator-overlay with the pulled `config.template.mjs` leaves — a pull alone is NOT enough, because daemons and MCP servers read the overlay, not the template. Because the AI harness initializes MCP servers *before* an agent's first turn, sunset is the only window where this refresh lands in time for the next session's boot. **Any failure (dirty tree, switch/pull/script error) is surfaced in the Step 3 handover comment and the final sunset payload — the refresh is best-effort and must NEVER block sunset completion.**
73
+ The pull refreshes code; in `neo-agent-brain` (where `ai/` lives post-split), `--migrate-config` reconciles the gitignored `config.mjs` operator-overlay with pulled `config.template.mjs` leaves — a pull alone is NOT enough, because daemons and MCP servers read the overlay, not the template. Because the AI harness initializes MCP servers *before* an agent's first turn, sunset is the only window where this refresh lands in time for the next session's boot. **Any failure (dirty tree, switch/pull/script error) is surfaced in the Step 3 handover comment and the final sunset payload — the refresh is best-effort and must NEVER block sunset completion.**
72
74
 
73
- > **Division of labor + retirement condition (Substrate Accretion Defense):** the orchestrator's `primary-dev-sync` task (shipped via the daemon substrate; config-migrate cascade added 2026-06) automates freshness for the **operator's primary checkout only** — the deployment deliberately syncs ONE repo. Per-agent clones are never daemon-pulled: an FF-pull racing an *active* agent session is the hazard, and sunset is the safe window precisely because the session is terminating. This agent-side step is therefore the **durable owner** of agent-clone freshness, not an interim awaiting daemon coverage. It retires only if the clone topology itself changes (agents stop owning dedicated clones, or a session-liveness-aware sync lane ships).
75
+ > **Division of labor + retirement condition (Substrate Accretion Defense):** the orchestrator's `primary-dev-sync` task (shipped via the daemon substrate; config-migrate cascade added 2026-06) automates freshness for the **operator's primary checkout only** — the deployment deliberately syncs ONE repo. Per-agent clones are never daemon-pulled: an FF-pull racing an *active* agent session is the hazard, and sunset is the safe window precisely because the session is terminating. This agent-side step is therefore the **durable owner** of agent-clone freshness across all org clones, while its `--migrate-config` reconcile is `neo-agent-brain`-scoped (the `[ -f ... ]` guard scopes repo topology after the `ai/` split, not retirement: the reconcile retires only if MCP server boot auto-reconciles overlays or local `ai/config.mjs` overlays retire; the pull retires only if clone topology changes or a session-liveness-aware sync lane ships).
74
76
 
75
77
  - **Linked worktree — push only:** do NOT switch to `dev` (the primary holds it; git refuses to share a branch across worktrees). Ensure your current PR branch is fully committed and pushed (`git push origin HEAD`). The next agent session will either resume this worktree or bootstrap a new one from the primary's refreshed `dev`.
76
78
 
77
79
  #### Primary-Checkout Staleness Probe (Linked worktree only) — per #11013
78
80
 
79
- The "main checkout's updated `dev`" assumption above only holds if the operator has actually pulled origin/dev into the primary checkout. In practice, primary's `dev` can fall arbitrarily behind because:
81
+ The "main checkout's updated `dev`" assumption above only holds if the operator has pulled `origin/dev` into the primary checkout. Primary's `dev` can fall behind because:
80
82
 
81
- - Worktree agents (correctly per the Linked-worktree rule above) do NOT pull dev into primary.
83
+ - Worktree agents (per the Linked-worktree rule above) do NOT pull `dev` into primary.
82
84
  - Operators don't always run `git pull origin dev` between sunset events.
83
- - Daemons running from primary — `orchestrator-daemon` (the canonical Agent OS scheduled-maintenance daemon per the [Agent OS v13 path](https://github.com/neomjs/neo-agent-brain/blob/dev/learn/agentos/v13-path.md) M3; currently MVP-shape via #11008, full class extraction in flight under #11009) plus its current and future siblings (`wake-daemon` for wake delivery, `DreamService` for ingestion, KB sync pipeline) — silently read pre-merge code when primary is stale.
85
+ - In `neo-agent-brain`, daemons running from primary — `orchestrator-daemon` (per the [Agent OS v13 path](https://github.com/neomjs/neo-agent-brain/blob/dev/learn/agentos/v13-path.md) M3) and its siblings (`wake-daemon`, `DreamService`, KB sync pipeline) — read pre-merge code when primary is stale.
84
86
 
85
87
  **Mandatory sunset probe (Isolated Worktree branch only):**
86
88
 
@@ -99,7 +101,7 @@ BEHIND=$(git -C "$PRIMARY_ROOT" rev-list --count dev..origin/dev 2>/dev/null ||
99
101
 
100
102
  **Conditional handover-comment block (fire only when `BEHIND > 0`):**
101
103
 
102
- > ⚠️ **Primary-checkout reminder:** the operator's primary checkout (`<PRIMARY_ROOT>`) `dev` branch is **`<BEHIND>` commits behind `origin/dev`**. The `orchestrator-daemon` (Agent OS canonical scheduled-maintenance daemon) and its siblings (`wake-daemon`, `DreamService`, KB sync pipeline) read pre-merge code until refresh. Run `git -C <PRIMARY_ROOT> pull origin dev` **then `node <PRIMARY_ROOT>/ai/scripts/setup/initServerConfigs.mjs --migrate-config`** in your main checkout to refresh `orchestrator-daemon` and downstream-daemon state. **A `git pull` alone is not enough:** it updates the committed `config.template.mjs`, but the daemons read the gitignored `config.mjs` operator-overlay — which only reconciles to new template leaves via `--migrate-config`, so without it the daemons run fresh code against stale config.
104
+ > ⚠️ **Primary-checkout reminder:** the operator's primary checkout (`<PRIMARY_ROOT>`) `dev` branch is **`<BEHIND>` commits behind `origin/dev`**. Run `git -C <PRIMARY_ROOT> pull origin dev` in your main checkout (and when `<PRIMARY_ROOT>` is `neo-agent-brain`, where `ai/` and the Agent OS daemons `orchestrator-daemon`, `wake-daemon`, `DreamService`, and KB sync live, also run `node <PRIMARY_ROOT>/ai/scripts/setup/initServerConfigs.mjs --migrate-config` so the gitignored `config.mjs` operator-overlay reconciles to pulled `config.template.mjs` leaves).
103
105
 
104
106
  When `BEHIND == 0`, suppress the block — no handover-comment noise on a fresh primary.
105
107
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo-agent-skills",
3
- "version": "0.1.44",
3
+ "version": "0.1.46",
4
4
  "description": "Install the workflow substrate a cross-model AI team actually runs on: ticket intake, PR review gates, lane coordination and guards, versioned as a package. The skills Neo.mjs maintainers load every session — materialized into your repo, not copied.",
5
5
  "type": "module",
6
6
  "license": "MIT",