@shardworks/guild-starter-kit 0.1.41 → 0.1.42
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.
- package/curricula/guild-operations/content.md +114 -35
- package/nexus-bundle.json +1 -0
- package/package.json +1 -1
|
@@ -22,7 +22,7 @@ An anima is the fundamental unit of identity in the guild. Animas are animated b
|
|
|
22
22
|
|
|
23
23
|
### Standing vs. Commissioned
|
|
24
24
|
|
|
25
|
-
- **Standing** animas persist on the roster indefinitely, called on by name. The
|
|
25
|
+
- **Standing** animas persist on the roster indefinitely, called on by name. The steward is a standing anima.
|
|
26
26
|
- **Commissioned** animas are created for a specific commission and their tenure ends when the commission completes.
|
|
27
27
|
|
|
28
28
|
## Roles
|
|
@@ -33,8 +33,8 @@ This guild uses the following roles:
|
|
|
33
33
|
|
|
34
34
|
| Role | Function |
|
|
35
35
|
|------|----------|
|
|
36
|
-
| **
|
|
37
|
-
| **Artificer** | Executes jobs — receives planned work and builds the thing. Works in workshops. |
|
|
36
|
+
| **Steward** | The patron's right hand. Advises on guild state and administers the guild — manages the roster, workshops, commissions, tools, and the Clockworks. Does not build works. |
|
|
37
|
+
| **Artificer** | Executes jobs — receives planned work and builds the thing. Works in workshops. Plans and records strokes for progress tracking. |
|
|
38
38
|
| **Sage** | Plans work. Decomposes commissions into pieces and jobs with concrete requirements. |
|
|
39
39
|
| **Master Sage** | Senior sage. If active, reviews incoming commissions to determine scope and planning approach. |
|
|
40
40
|
|
|
@@ -52,29 +52,29 @@ Four commands manage the workshop lifecycle:
|
|
|
52
52
|
|
|
53
53
|
| Command | What it does |
|
|
54
54
|
|---------|-------------|
|
|
55
|
-
| `nsg workshop
|
|
55
|
+
| `nsg workshop register <url>` | Clone a remote repo and register it as a workshop |
|
|
56
56
|
| `nsg workshop remove <name>` | Remove a workshop — deletes bare clone, worktrees, and guild.json entry |
|
|
57
57
|
| `nsg workshop list` | List all workshops with clone status and active worktree count |
|
|
58
58
|
| `nsg workshop create <org/name>` | Create a new GitHub repo and register it as a workshop |
|
|
59
59
|
|
|
60
|
-
###
|
|
60
|
+
### Registering an Existing Repository
|
|
61
61
|
|
|
62
62
|
When the patron has an existing repository they want the guild to work on:
|
|
63
63
|
|
|
64
64
|
```
|
|
65
|
-
nsg workshop
|
|
65
|
+
nsg workshop register https://github.com/org/my-app.git
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
This clones the repo as a bare clone into `.nexus/workshops/my-app.git` and adds it to `guild.json`. The workshop name is derived from the URL (the last path segment, minus `.git`). To use a custom name:
|
|
69
69
|
|
|
70
70
|
```
|
|
71
|
-
nsg workshop
|
|
71
|
+
nsg workshop register https://github.com/org/my-app.git --name frontend
|
|
72
72
|
```
|
|
73
73
|
|
|
74
74
|
The repository must already exist and be accessible. SSH URLs work too:
|
|
75
75
|
|
|
76
76
|
```
|
|
77
|
-
nsg workshop
|
|
77
|
+
nsg workshop register git@github.com:org/my-app.git
|
|
78
78
|
```
|
|
79
79
|
|
|
80
80
|
### Creating a New Repository
|
|
@@ -159,7 +159,7 @@ Not every commission becomes a work. A small commission might map directly to a
|
|
|
159
159
|
|
|
160
160
|
### Commission Lifecycle
|
|
161
161
|
|
|
162
|
-
1. **Posted** — the patron runs `nsg commission <spec> --workshop <name>`. This creates the commission in the Ledger and signals `commission.posted`.
|
|
162
|
+
1. **Posted** — the patron runs `nsg commission create <spec> --workshop <name>`. This creates the commission in the Ledger and signals `commission.posted`.
|
|
163
163
|
2. **Scope determined** — the Master Sage (if active) reviews the commission and determines whether it's a work (needs decomposition), a piece (needs planning into jobs), or a single job (ready for dispatch).
|
|
164
164
|
3. **Planned** — for works and pieces, the sage decomposes and plans, producing concrete jobs with acceptance criteria.
|
|
165
165
|
4. **Worktree prepared** — the `workshop-prepare` engine (triggered by `commission.posted`) creates a job branch and worktree, then signals `commission.ready`.
|
|
@@ -190,13 +190,13 @@ posted → in_progress → completed
|
|
|
190
190
|
|
|
191
191
|
## Sessions
|
|
192
192
|
|
|
193
|
-
A session is a single manifestation of an anima — the span during which an anima is alive and working. Every interaction with an anima happens through a session, whether it's consulting the
|
|
193
|
+
A session is a single manifestation of an anima — the span during which an anima is alive and working. Every interaction with an anima happens through a session, whether it's consulting the steward, dispatching a job, or briefing an anima about an event.
|
|
194
194
|
|
|
195
195
|
### Session Triggers
|
|
196
196
|
|
|
197
197
|
| Trigger | Meaning |
|
|
198
198
|
|---------|---------|
|
|
199
|
-
| **consult** | Interactive session with a standing anima (e.g., `nsg consult
|
|
199
|
+
| **consult** | Interactive session with a standing anima (e.g., `nsg consult steward`) |
|
|
200
200
|
| **summon** | The anima is summoned by a standing order to act on an event — autonomous, directive |
|
|
201
201
|
| **brief** | The anima is briefed by a standing order about an event — autonomous, informational |
|
|
202
202
|
|
|
@@ -237,14 +237,51 @@ For commissions, the `commission_sessions` join table links commissions to their
|
|
|
237
237
|
|
|
238
238
|
## Tools
|
|
239
239
|
|
|
240
|
-
Tools that animas wield during work. Each tool ships with instructions delivered to the anima at manifest time. All tools are packaged in `@shardworks/nexus-stdlib`:
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
- **
|
|
244
|
-
- **commission** —
|
|
245
|
-
- **
|
|
240
|
+
Tools that animas wield during work. Each tool ships with instructions delivered to the anima at manifest time. Tools follow a `<noun>-<verb>` naming convention. All tools are packaged in `@shardworks/nexus-stdlib`:
|
|
241
|
+
|
|
242
|
+
### Commission Tools
|
|
243
|
+
- **commission-create** — post a commission to the guild
|
|
244
|
+
- **commission-list** — list commissions with optional filters
|
|
245
|
+
- **commission-show** — show details of a specific commission
|
|
246
|
+
- **commission-update** — update a commission's status
|
|
247
|
+
|
|
248
|
+
### Anima Tools
|
|
249
|
+
- **anima-create** — create a new anima with assigned training and roles
|
|
250
|
+
- **anima-list** — list animas with optional filters
|
|
251
|
+
- **anima-show** — show details of a specific anima
|
|
252
|
+
- **anima-update** — update an anima's status or roles
|
|
253
|
+
- **anima-remove** — remove an anima from the guild
|
|
254
|
+
|
|
255
|
+
### Workshop Tools
|
|
256
|
+
- **workshop-create** — create a new GitHub repo and register as a workshop
|
|
257
|
+
- **workshop-register** — register an existing repo as a workshop
|
|
258
|
+
- **workshop-list** — list workshops with status
|
|
259
|
+
- **workshop-show** — show workshop details
|
|
260
|
+
- **workshop-remove** — remove a workshop
|
|
261
|
+
|
|
262
|
+
### Tool Management
|
|
263
|
+
- **tool-install** — install new tools, engines, or bundles into the guild
|
|
264
|
+
- **tool-remove** — remove installed tools
|
|
265
|
+
- **tool-list** — list installed tools
|
|
266
|
+
|
|
267
|
+
### Work Decomposition Tools
|
|
268
|
+
- **work-create** — create a work (top-level decomposition unit)
|
|
269
|
+
- **work-list** / **work-show** / **work-update** — manage works
|
|
270
|
+
- **piece-create** — create a piece (planning unit within a work)
|
|
271
|
+
- **piece-list** / **piece-show** / **piece-update** — manage pieces
|
|
272
|
+
- **job-create** — create a job (dispatch unit within a piece)
|
|
273
|
+
- **job-list** / **job-show** / **job-update** — manage jobs
|
|
274
|
+
- **stroke-create** — record a stroke (atomic action within a job)
|
|
275
|
+
- **stroke-list** / **stroke-show** / **stroke-update** — manage strokes
|
|
276
|
+
|
|
277
|
+
### Clockworks Tools
|
|
278
|
+
- **clock-list** — show pending events
|
|
279
|
+
- **clock-tick** — process the next pending event
|
|
280
|
+
- **clock-run** — process all pending events
|
|
281
|
+
|
|
282
|
+
### Utility Tools
|
|
283
|
+
- **signal** — signal a custom guild event for the Clockworks
|
|
246
284
|
- **nexus-version** — report the installed Nexus framework version
|
|
247
|
-
- **signal** — signal a custom guild event for the Clockworks (not included in the default bundle — must be installed separately)
|
|
248
285
|
|
|
249
286
|
### Engines
|
|
250
287
|
|
|
@@ -285,10 +322,14 @@ The guild's operational database (SQLite). Holds anima records, roster, commissi
|
|
|
285
322
|
| `roster` | Active role assignments (filtered view of active animas) |
|
|
286
323
|
| `commissions` | Commission records with status, content, and workshop |
|
|
287
324
|
| `commission_assignments` | Which anima was assigned to which commission |
|
|
325
|
+
| `works` | Top-level work items linked to commissions |
|
|
326
|
+
| `pieces` | Pieces within works — independently plannable chunks |
|
|
327
|
+
| `jobs` | Dispatchable job assignments within pieces |
|
|
328
|
+
| `strokes` | Atomic actions within jobs — progress tracking |
|
|
288
329
|
| `sessions` | Every session — anima, provider, trigger, metrics, cost |
|
|
289
330
|
| `commission_sessions` | Links commissions to their sessions |
|
|
290
331
|
| `events` | The Clockworks event queue — every event signaled |
|
|
291
|
-
| `
|
|
332
|
+
| `event_dispatches` | Standing order execution records |
|
|
292
333
|
| `audit_log` | Who did what, when |
|
|
293
334
|
|
|
294
335
|
## The Clockworks
|
|
@@ -350,8 +391,8 @@ Example `guild.json` configuration:
|
|
|
350
391
|
{ "on": "commission.posted", "run": "workshop-prepare" },
|
|
351
392
|
{ "on": "commission.ready", "summon": "artificer" },
|
|
352
393
|
{ "on": "commission.session.ended", "run": "workshop-merge" },
|
|
353
|
-
{ "on": "commission.failed", "brief": "
|
|
354
|
-
{ "on": "code.reviewed", "brief": "
|
|
394
|
+
{ "on": "commission.failed", "brief": "steward" },
|
|
395
|
+
{ "on": "code.reviewed", "brief": "steward" }
|
|
355
396
|
]
|
|
356
397
|
}
|
|
357
398
|
}
|
|
@@ -428,7 +469,7 @@ Since there are no standing orders, the event is marked as processed with no dis
|
|
|
428
469
|
{
|
|
429
470
|
"clockworks": {
|
|
430
471
|
"standingOrders": [
|
|
431
|
-
{ "on": "hello.world", "brief": "
|
|
472
|
+
{ "on": "hello.world", "brief": "steward" }
|
|
432
473
|
]
|
|
433
474
|
}
|
|
434
475
|
}
|
|
@@ -441,7 +482,7 @@ nsg signal hello.world
|
|
|
441
482
|
nsg clock tick
|
|
442
483
|
```
|
|
443
484
|
|
|
444
|
-
The Clockworks matches the event to the standing order and dispatches it — the
|
|
485
|
+
The Clockworks matches the event to the standing order and dispatches it — the steward is briefed.
|
|
445
486
|
|
|
446
487
|
## Training
|
|
447
488
|
|
|
@@ -487,24 +528,62 @@ The command is idempotent — safe to run at any time. If everything is already
|
|
|
487
528
|
|
|
488
529
|
## CLI Reference
|
|
489
530
|
|
|
490
|
-
The primary interface is the `nsg` command:
|
|
531
|
+
The primary interface is the `nsg` command, organized by noun groups:
|
|
491
532
|
|
|
533
|
+
### Top-level Commands
|
|
492
534
|
| Command | Purpose |
|
|
493
535
|
|---------|---------|
|
|
494
536
|
| `nsg init` | Create a new guild |
|
|
495
|
-
| `nsg
|
|
496
|
-
| `nsg consult <name>` | Consult a standing anima (e.g., the advisor) |
|
|
537
|
+
| `nsg consult <name>` | Consult a standing anima (e.g., `nsg consult steward`) |
|
|
497
538
|
| `nsg status` | Show guild status |
|
|
498
539
|
| `nsg signal <name>` | Signal a custom guild event |
|
|
499
|
-
| `nsg clock list` | Show pending events |
|
|
500
|
-
| `nsg clock tick [id]` | Process next pending event (or specific id) |
|
|
501
|
-
| `nsg clock run` | Process all pending events |
|
|
502
|
-
| `nsg workshop add <url>` | Clone a remote repo and register it as a workshop |
|
|
503
|
-
| `nsg workshop remove <name>` | Remove a workshop |
|
|
504
|
-
| `nsg workshop list` | List workshops with status |
|
|
505
|
-
| `nsg workshop create <org/name>` | Create a new GitHub repo and register as a workshop |
|
|
506
540
|
| `nsg guild restore` | Restore runtime state after a fresh clone |
|
|
541
|
+
|
|
542
|
+
### Commission
|
|
543
|
+
| Command | Purpose |
|
|
544
|
+
|---------|---------|
|
|
545
|
+
| `nsg commission create <spec> --workshop <name>` | Post a commission |
|
|
546
|
+
| `nsg commission list` | List commissions |
|
|
547
|
+
| `nsg commission show <id>` | Show commission details |
|
|
548
|
+
| `nsg commission update <id>` | Update a commission |
|
|
549
|
+
|
|
550
|
+
### Anima
|
|
551
|
+
| Command | Purpose |
|
|
552
|
+
|---------|---------|
|
|
553
|
+
| `nsg anima create` | Create a new anima |
|
|
554
|
+
| `nsg anima list` | List animas |
|
|
555
|
+
| `nsg anima show <name>` | Show anima details |
|
|
556
|
+
| `nsg anima update <name>` | Update an anima |
|
|
557
|
+
| `nsg anima remove <name>` | Remove an anima |
|
|
558
|
+
| `nsg anima manifest <name>` | Generate an anima's full instructions (debug) |
|
|
559
|
+
|
|
560
|
+
### Workshop
|
|
561
|
+
| Command | Purpose |
|
|
562
|
+
|---------|---------|
|
|
563
|
+
| `nsg workshop register <url>` | Register an existing repo as a workshop |
|
|
564
|
+
| `nsg workshop create <org/name>` | Create a new GitHub repo and register as a workshop |
|
|
565
|
+
| `nsg workshop list` | List workshops with status |
|
|
566
|
+
| `nsg workshop show <name>` | Show workshop details |
|
|
567
|
+
| `nsg workshop remove <name>` | Remove a workshop |
|
|
568
|
+
|
|
569
|
+
### Tool
|
|
570
|
+
| Command | Purpose |
|
|
571
|
+
|---------|---------|
|
|
507
572
|
| `nsg tool install <source>` | Install a tool or bundle |
|
|
508
573
|
| `nsg tool remove <name>` | Remove an installed tool |
|
|
509
|
-
| `nsg
|
|
510
|
-
|
|
574
|
+
| `nsg tool list` | List installed tools |
|
|
575
|
+
|
|
576
|
+
### Work Decomposition
|
|
577
|
+
| Command | Purpose |
|
|
578
|
+
|---------|---------|
|
|
579
|
+
| `nsg work create/list/show/update` | Manage works |
|
|
580
|
+
| `nsg piece create/list/show/update` | Manage pieces |
|
|
581
|
+
| `nsg job create/list/show/update` | Manage jobs |
|
|
582
|
+
| `nsg stroke create/list/show/update` | Manage strokes |
|
|
583
|
+
|
|
584
|
+
### Clockworks
|
|
585
|
+
| Command | Purpose |
|
|
586
|
+
|---------|---------|
|
|
587
|
+
| `nsg clock list` | Show pending events |
|
|
588
|
+
| `nsg clock tick [id]` | Process next pending event (or specific id) |
|
|
589
|
+
| `nsg clock run` | Process all pending events |
|
package/nexus-bundle.json
CHANGED
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
{ "package": "@shardworks/nexus-stdlib@0.x", "name": "clock-tick" },
|
|
23
23
|
{ "package": "@shardworks/nexus-stdlib@0.x", "name": "clock-run" },
|
|
24
24
|
{ "package": "@shardworks/nexus-stdlib@0.x", "name": "nexus-version" },
|
|
25
|
+
{ "package": "@shardworks/nexus-stdlib@0.x", "name": "signal" },
|
|
25
26
|
{ "package": "@shardworks/nexus-stdlib@0.x", "name": "work-create" },
|
|
26
27
|
{ "package": "@shardworks/nexus-stdlib@0.x", "name": "work-list" },
|
|
27
28
|
{ "package": "@shardworks/nexus-stdlib@0.x", "name": "work-show" },
|