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
|
-
|
|
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
|
|
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
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
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
|
-
|
|
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;
|
|
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,
|
|
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
|
|
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 (
|
|
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
|
-
-
|
|
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`**.
|
|
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.
|
|
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",
|