@hybridlabor-api/aos 4.9.0 → 4.10.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 (28) hide show
  1. package/.agents/{agents.md → AGENTS.md} +2 -0
  2. package/.agents/nodes.json +2 -0
  3. package/.claude/hooks/memb-inject.mjs +29 -1
  4. package/.claude/workflows/startcycle-dispatch.mjs +23 -1
  5. package/CLAUDE.md +0 -571
  6. package/THIRD_PARTY_NOTICES.md +38 -0
  7. package/bin/aos-doctor.mjs +1 -1
  8. package/installer.js +13 -9
  9. package/package.json +2 -2
  10. package/skills/basic/bdb-eventagency-skill/SKILL.md +252 -0
  11. package/skills/basic/bdb-shipping-skill/SKILL.md +161 -0
  12. package/skills/basic/godmode-eventtech/SKILL.md +4 -1
  13. package/skills/global_config/aos-project-init/SKILL.md +2 -0
  14. package/skills/global_config/aos-project-init/assets/AGENTS.template.md +1 -1
  15. package/skills/global_config/aos-project-init/scripts/aos-project-doctor.mjs +1 -1
  16. package/skills/global_config/aos-setup/SKILL.md +1 -1
  17. package/skills/global_config/aos-setup/scripts/aos-doctor.mjs +1 -1
  18. package/skills/global_config/ask-tim/SKILL.md +3 -3
  19. package/skills/global_config/deja-memory/SKILL.md +3 -1
  20. package/skills/global_config/plan-canvas/SKILL.md +9 -2
  21. package/skills/global_config/plan-canvas/scripts/lib/plan-canvas/ui.js +10 -2
  22. package/skills/global_config/plan-canvas/scripts/plan-canvas.js +1 -1
  23. package/skills/global_config/read-the-damn-docs/SKILL.md +175 -0
  24. package/skills/global_config/writing-plans/SKILL.md +12 -12
  25. package/skills/global_config/writing-plans-legacy/SKILL.md +15 -2
  26. package/.claude/CLAUDE.md +0 -12
  27. package/mcps/RhinoMCP/docs/content/docs/getting-started/gemini.md +0 -61
  28. /package/{GEMINI.md → RULES.md} +0 -0
@@ -287,6 +287,44 @@ the upstream offensive exploit content is stripped and not carried over.
287
287
 
288
288
  ---
289
289
 
290
+ ## talkvalue/event-agency-skills
291
+
292
+ <https://github.com/talkvalue/event-agency-skills> — Apache-2.0.
293
+ Copyright talkvalue contributors. Upstream carries no explicit copyright line
294
+ in `README.md`, `CONTRIBUTING.md`, or the plugin manifests; the attribution
295
+ above is the repository's own `LICENSE` grant.
296
+
297
+ Prose techniques adapted into `skills/basic/bdb-eventagency-skill/SKILL.md`:
298
+ stakeholder-type inbox classification with temporal priority overrides,
299
+ vendor-type failure-impact tiers, phase-based escalation thresholds
300
+ (T-30 → show day), BLOCKED-means-ours item semantics, the speaker materials
301
+ deadline framework (D-30 / D-21 / D-14 / D-7 / D-1), and post-event
302
+ performance-tier reporting. Upstream scripts, Composio tool bindings, and all
303
+ Python were not carried over; the skill is self-contained prose with no
304
+ dependency.
305
+
306
+ ---
307
+
308
+ ## BuilderIO/skills
309
+
310
+ <https://github.com/BuilderIO/skills> — MIT. Copyright (c) 2026 Builder.io.
311
+
312
+ One skill adapted into `skills/global_config/read-the-damn-docs/SKILL.md`:
313
+ the docs-first trigger list, the source hierarchy, the required workflow, the
314
+ must-trigger examples, and the "if docs are unavailable" rule. AOS additionally
315
+ adds a Verification section, a `category:` key (Builder's own validator forbids
316
+ one, AOS requires it), a division-of-labour note against the `AGENTS.md` *Zero
317
+ guesswork* rule, and a pointer to the installed `firecrawl-search` /
318
+ `firecrawl-scrape` tools. Prose only — the upstream `agents/openai.yaml` and
319
+ README were not carried over, and no executable from the repo is referenced.
320
+
321
+ The other 22 skills in that repo are **not** vendored. Six of them
322
+ (`visual-plan`, `visual-recap`, `visual-edit`, `an`, `turn-into-app`, `rewind`)
323
+ are build artefacts synced from a different upstream by
324
+ `scripts/sync-agent-native-skills.mjs`, and the repo's own documentation says
325
+ not to treat them as standalone. Its `.mcp.json` and plugin manifests register
326
+ external HTTP MCP servers without a prompt, so the plugin surface must never be
327
+ installed.
290
328
  ## obra/superpowers
291
329
 
292
330
  <https://github.com/obra/superpowers> — MIT. Copyright (c) 2025 Jesse Vincent.
@@ -201,7 +201,7 @@ function checkHarnesses() {
201
201
  // ---------------------------------------------------------------- 4. Hooks & Security Gates
202
202
  function checkHooks() {
203
203
  const claudeHooksDir = h('.claude', 'hooks');
204
- const EXPECTED_VERSION = { 'memb-inject.mjs': 5 };
204
+ const EXPECTED_VERSION = { 'memb-inject.mjs': 6 };
205
205
  const versionOf = (text) => {
206
206
  const m = /^\/\/\s*aos-hook-version:\s*(\d+)/m.exec(text);
207
207
  return m ? Number(m[1]) : null;
package/installer.js CHANGED
@@ -2921,7 +2921,7 @@ async function installMcpsForTarget(paths, ctx) {
2921
2921
  }
2922
2922
  log.step(`Installed selected MCP servers to ${mcpCodeTarget}`);
2923
2923
 
2924
- const nodeMcps = ['adobe_uxp_mcp', 'unreal_mcp', 'tdmcp', 'touchdesigner-mcp', 'davinci-resolve-mcp', 'after-effects-mcp', 'computer-use-mcp'];
2924
+ const nodeMcps = ['adobe_uxp_mcp', 'unreal_mcp', 'tdmcp', 'touchdesigner-mcp', 'davinci-resolve-mcp', 'after-effects-mcp', 'computer-use-mcp', 'mcsc'];
2925
2925
  for (const mcpFolder of nodeMcps.filter(m => selectedMcps.includes(m))) {
2926
2926
  const targetFolder = path.join(mcpCodeTarget, mcpFolder);
2927
2927
  if (fs.existsSync(path.join(targetFolder, 'package.json'))) {
@@ -3469,13 +3469,17 @@ function compileCodexAgents(agents, targetDir, pipelineConfig = null) {
3469
3469
 
3470
3470
 
3471
3471
  function injectHarnessRules() {
3472
- const geminiMdSrc = path.join(srcDir, 'GEMINI.md');
3472
+ const rulesMdSrc = path.join(srcDir, 'RULES.md');
3473
3473
  const agentsMdSrc = path.join(srcDir, '.agents', 'agents.md');
3474
3474
 
3475
- if (fs.existsSync(geminiMdSrc)) {
3476
- installStep(`install GEMINI.md to ${path.join(geminiDir, 'GEMINI.md')}`, () => {
3477
- copyDirRecursiveSync(geminiMdSrc, path.join(geminiDir, 'GEMINI.md'));
3478
- log.step(`Installed GEMINI.md to ${path.join(geminiDir, 'GEMINI.md')}`);
3475
+ if (fs.existsSync(rulesMdSrc)) {
3476
+ installStep(`install RULES.md to ${path.join(geminiDir, 'RULES.md')}`, () => {
3477
+ copyDirRecursiveSync(rulesMdSrc, path.join(geminiDir, 'RULES.md'));
3478
+ // Keep GEMINI.md in sync for backwards compatibility with Antigravity CLI harnesses
3479
+ try {
3480
+ fs.copyFileSync(rulesMdSrc, path.join(geminiDir, 'GEMINI.md'));
3481
+ } catch (e) { logDebug(e, 'sync GEMINI.md fallback'); }
3482
+ log.step(`Installed RULES.md to ${path.join(geminiDir, 'RULES.md')}`);
3479
3483
  }, 'The harness injection below still runs.');
3480
3484
 
3481
3485
  // Dispatcher scripts must land in ~/.claude/workflows/, because that is
@@ -3495,7 +3499,7 @@ function injectHarnessRules() {
3495
3499
 
3496
3500
  const startcycleWorkflowSrc = path.join(srcDir, '.agents', 'workflows', 'startcycle.md');
3497
3501
  const sources = installStep('read the global rule sources', () => ({
3498
- globalRules: fs.readFileSync(geminiMdSrc, 'utf8'),
3502
+ globalRules: fs.readFileSync(rulesMdSrc, 'utf8'),
3499
3503
  startcycleContent: fs.existsSync(startcycleWorkflowSrc) ? fs.readFileSync(startcycleWorkflowSrc, 'utf8') : '',
3500
3504
  agentsMdContent: fs.existsSync(agentsMdSrc) ? fs.readFileSync(agentsMdSrc, 'utf8') : ''
3501
3505
  }), 'Cursor, Claude, Copilot and Codex keep their current instruction files.');
@@ -4914,7 +4918,7 @@ async function runQuickUpdate(installState) {
4914
4918
  pruneRemovedSkills(_sessionManifest);
4915
4919
  s.stop('Skills refreshed');
4916
4920
 
4917
- // Everything injectHarnessRules() delivers -- GEMINI.md, the dispatcher
4921
+ // Everything injectHarnessRules() delivers -- RULES.md, the dispatcher
4918
4922
  // workflows the skills point at, the compiled subagent definitions, the
4919
4923
  // harness rule files and the gate + memory hooks -- used to be
4920
4924
  // fresh-install-only. v4.4.1 split just the hooks out of it for Quick
@@ -5087,7 +5091,7 @@ async function main() {
5087
5091
  path.join(srcDir, '.cursor'),
5088
5092
  path.join(srcDir, '.github'),
5089
5093
  path.join(srcDir, '.codex-plugin'),
5090
- path.join(srcDir, 'GEMINI.md'),
5094
+ path.join(srcDir, 'RULES.md'),
5091
5095
  path.join(srcDir, 'AGENTS.md'),
5092
5096
  path.join(srcDir, 'CLAUDE.md'),
5093
5097
  path.join(srcDir, 'CODEX.md'),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hybridlabor-api/aos",
3
- "version": "4.9.0",
3
+ "version": "4.10.0",
4
4
  "description": "AOS — A Curated AI AGENT OS. Optimized agent skills and add-ons like memB, OpenWiki, Heimdall Token Saver, and Godmode architectures.",
5
5
  "main": "installer.js",
6
6
  "engines": {
@@ -45,7 +45,7 @@
45
45
  "bin/",
46
46
  "lib/",
47
47
  "mcp_config.json",
48
- "GEMINI.md",
48
+ "RULES.md",
49
49
  "CODEX.md",
50
50
  "CLAUDE.md",
51
51
  "THIRD_PARTY_NOTICES.md",
@@ -0,0 +1,252 @@
1
+ ---
2
+ name: bdb-eventagency-skill
3
+ description: "Use for event agency operations: client intake, project scoping, vendor management, crew coordination, production planning, pre-show logistics, and post-show wrap. Delegates technical execution to godmode-eventtech and bdbmediastorm."
4
+ category: media-eventtech
5
+ source: talkvalue/event-agency-skills
6
+ ---
7
+
8
+ # BDB Event Agency Skill
9
+
10
+ The **agency-ops layer** for Hybridlabor Global — the business and production-coordination side of running an event company. This skill owns everything that happens *before, around, and after* the show. It does not own the technical execution itself.
11
+
12
+ Techniques adapted from [talkvalue/event-agency-skills](https://github.com/talkvalue/event-agency-skills) (Apache-2.0). Prose only — no upstream code, no scripts, no dependencies.
13
+
14
+ ---
15
+
16
+ ## 1. Routing Table
17
+
18
+ | Task | Route to |
19
+ |---|---|
20
+ | Signal flow, protocol binding, OSC/DMX, hardware limits, MCP orchestration | `godmode-eventtech` |
21
+ | Live show architecture brainstorming, creative direction | `bdbmediastorm` |
22
+ | Lighting cue execution, patch, playback | `bdb-grandma3-mcp` |
23
+ | Video clip, layer, and output control | `bdb-resolume-mcp` |
24
+ | 3D scene, render, spatial build | `godmode-3d-creation` |
25
+ | Client intake, scoping, budget, scheduling, vendor, crew, pre-show logistics, post-show wrap | **stay in this skill** |
26
+
27
+ **Boundary rule:** if the question is *"what should this look like"* or *"what signal goes where"*, route out. If it is *"who is bringing it, what did they promise, and what happens when they don't"*, it stays here. This skill never issues a technical execution instruction — it routes.
28
+
29
+ ---
30
+
31
+ ## 2. Client & Project Intake
32
+
33
+ An event request is not a booking until these are known. Anything guessed here becomes a change order later.
34
+
35
+ ### Required fields before committing
36
+
37
+ | Field | Why it is required | If missing |
38
+ |---|---|---|
39
+ | **Date** (and whether date or time is flexible) | Drives every downstream deadline in this skill | Cannot scope. Ask first. |
40
+ | **Venue** (named, or shortlist with constraints) | Venue holds all vendor access; determines power, load-in window, noise curfew | Cannot plan load-in or vendor sequencing |
41
+ | **Brief** — what must happen, who must be in the room | Distinguishes an event from a venue rental | Ask: *"What does success look like when the last guest leaves?"* |
42
+ | **Budget range** — a band, not a number | Drives the action policy: which classes are `never` vs `criteria` | Do not quote. Scope verbally only. |
43
+ | **Technical rider** | AV, staging, power, network, FOH position | Route to `godmode-eventtech` for feasibility |
44
+ | **Attendance estimate** | Drives catering counts, staffing, registration, capacity | Cannot close catering or staffing |
45
+ | **Client contact + decision authority** | Who can actually say yes | Every later "we'll confirm" is a no |
46
+
47
+ ### Scoping questions to ask before any commitment
48
+
49
+ 1. **Who signs?** Not "the client" — a name. The person who can approve a change order on show day.
50
+ 2. **What is non-negotiable?** Date, venue, budget, talent, or brand. Everything else is negotiable; know which one is not.
51
+ 3. **What has been promised already, in writing, to anyone?** Sponsors and speakers hold commitments that predate you.
52
+ 4. **What is the failure mode we are least able to absorb?** Late AV is a catastrophe; late florals are an inconvenience. Escalation urgency (§4) follows from this answer.
53
+ 5. **Is there a technical rider yet?** If not, that is a Phase 0 action, not a show-week action.
54
+
55
+ ### Scope statement rule
56
+
57
+ Produce a written scope before any deposit. It must name: date, venue, attendance band, the ten action classes with their modes (default-deny — see `.aos/factory.yaml`), what is explicitly out of scope, and the change-order trigger. A scope without an out-of-scope list will be expanded by the client by default.
58
+
59
+ ---
60
+
61
+ ## 3. Inbox Triage
62
+
63
+ Run this at the start of a working day on an active event, before a production meeting, or after time away. It produces a **point-in-time snapshot**, not a live feed.
64
+
65
+ ### Stakeholder classification
66
+
67
+ | Type | Key signals | Default tier |
68
+ |---|---|---|
69
+ | **Vendor** | AV, catering, security, decor, transport, staffing, rentals, print | 2 |
70
+ | **Client** | Contracting organisation, corporate domain, C-suite/VP | 2 |
71
+ | **Sponsor** | Activation budget or in-kind contribution — **distinct from the client even when the client also sponsors** | 3 |
72
+ | **Speaker** | Bureau domain, rider, session, keynote, bio/headshot request | 3 |
73
+ | **Venue** | Hotel, convention centre, outdoor site, venue coordinator, venue-employed catering manager | 2 |
74
+ | **Internal** | Own domain, team aliases, automated notifications | 3 |
75
+
76
+ When a thread is ambiguous, default to the type with the higher production impact: **Vendor > Venue > Speaker** for operational threads.
77
+
78
+ ### Priority tiers
79
+
80
+ | Tier | Label | Response window | Criteria |
81
+ |---|---|---|---|
82
+ | **1** | Immediate | 1–2 hours | Blocked deliverable, payment deadline within 48h, client waiting on confirmation, venue or vendor escalation, load-in unresolved within 72h of the event |
83
+ | **2** | Today | Business hours | Advancing information requests, assets for review, draft approvals, speaker logistics more than 72h out |
84
+ | **3** | Tracking | None | FYIs, confirmations of receipt, vendor acknowledgements, threads you are CC'd on |
85
+
86
+ ### Temporal override rules — apply before finalising tiers
87
+
88
+ These override the table above:
89
+
90
+ - Any vendor email mentioning **load-in, install, delivery window, or rider compliance** is Tier 1 if the event is within 14 days.
91
+ - Any client email containing **a question in subject or body** is Tier 1.
92
+ - Any Tier 1 thread with **no outbound reply in 24h+** escalates to flagged regardless of its original tier.
93
+
94
+ **Rationale:** the tier table is a prior. The overrides exist because the failure mode of event email is a request that looked like an FYI and was not one.
95
+
96
+ ### Output shape
97
+
98
+ A dated digest containing: event name, timestamp, event phase, period covered, counts per tier, then the tier-1 and tier-2 threads with the *specific* action each needs and who owns it. Every extracted action item must be one of:
99
+
100
+ - **[OUR ACTION]** — a commitment we made, with a date
101
+ - **[AWAITING]** — a commitment someone else made, with a date
102
+ - **[APPROVAL NEEDED]** — a decision only the client can make
103
+
104
+ Never mix these three. An action with no owner is not an action item.
105
+
106
+ ---
107
+
108
+ ## 4. Vendor Management
109
+
110
+ Track **existing** vendor commitments and deliverables. This skill does not source vendors, negotiate contracts, or process payments.
111
+
112
+ ### Vendor types, lead times, and failure impact
113
+
114
+ | Type | Typical lead time | Failure impact |
115
+ |---|---|---|
116
+ | AV / Technical | 2–4 weeks | **Critical** — no AV, no event |
117
+ | Venue | Contracted months ahead | **Critical** — venue holds all vendor access |
118
+ | Catering / F&B | 2–3 weeks (final count 72h) | High — dietary and count changes cascade |
119
+ | Transport / Logistics | 1–2 weeks | High — gear and people movement |
120
+ | Security | 1–2 weeks | High — compliance and safety |
121
+ | Entertainment / Talent | Rider-dependent | High — contracted, non-fungible |
122
+ | Decor / Floral | 1–2 weeks | Medium — visual, not operational |
123
+ | Staffing Agencies | 1–2 weeks | Medium — replaceable if flagged early |
124
+ | Signage / Print | 5–10 business days | Medium — wayfinding and branding |
125
+ | Rentals | 1 week | Medium — tables, chairs, linens |
126
+
127
+ ### Phase-based urgency
128
+
129
+ Urgency is relative to **event proximity**, never absolute time. The same 48-hour silence is fine in month one and a production risk in advance week.
130
+
131
+ | Phase | Window | Overdue threshold | Escalation speed |
132
+ |---|---|---|---|
133
+ | Normal | T-30 and out | 48h no response | Standard: email → wait → follow-up |
134
+ | Planning | T-30 to T-8 | 24h no response | Accelerated: email → same-day follow-up |
135
+ | Advance | T-7 to T-2 | 12h no response | Urgent: email → phone within 4h |
136
+ | Load-in | T-1 | 2h no response | Emergency: phone immediately, escalate to production lead |
137
+ | Show day | T-0 | 1h no response | Emergency: phone + contingency activation |
138
+
139
+ ### Item status taxonomy
140
+
141
+ | Status | Meaning |
142
+ |---|---|
143
+ | **OVERDUE** | Past deadline, no confirmation |
144
+ | **AT RISK** | Deadline approaching, last contact exceeds the phase threshold |
145
+ | **ON TRACK** | Confirmed, or within the normal response window |
146
+ | **BLOCKED** | **Waiting on us, not the vendor** |
147
+
148
+ **BLOCKED items are the most important row in the table and are routinely under-reported.** When a vendor is waiting on our headcount, floor plan, or approval, that is our team's problem. Surface it first.
149
+
150
+ ### Escalation path
151
+
152
+ | Attempt | AV / Venue / Catering | Decor / Signage / Rentals | Staffing / Transport |
153
+ |---|---|---|---|
154
+ | 1st | Follow-up email quoting the original request | Follow-up email | Follow-up email |
155
+ | 2nd | Phone the account manager within 4h | Phone next business day | Phone next business day |
156
+ | 3rd | Escalate to production lead + contingency research | Source a backup vendor | Source a backup vendor |
157
+
158
+ **On show day: skip email entirely. Phone or in-person only.** Never send a follow-up email on T-0.
159
+
160
+ ### Drafting rules for vendor follow-ups
161
+
162
+ - Reference the **specific** original request or deliverable — not "following up on my last email".
163
+ - State the deadline explicitly.
164
+ - Ask for a **specific confirmation** ("Can you confirm delivery by 14 March?"), not an open question.
165
+ - **No guilt, no pressure.** Vendors respond better to clarity than to escalation tone.
166
+ - For a phone call, prepare: vendor name, account manager, the specific item, the deadline and why it matters, and the fallback question — *"If the original plan isn't possible, what's the alternative?"*
167
+
168
+ ### Budget and invoice context
169
+
170
+ | Age | Status | Action |
171
+ |---|---|---|
172
+ | Within terms | Current | None |
173
+ | 1–30 days | Nudge | Friendly reminder — assume oversight |
174
+ | 31–60 days | Firm request | Direct ask with date and amount |
175
+ | 60+ days | Escalation | Account lead; consider late fee or hold |
176
+
177
+ Variance alerts: **Venue 5% over** (largest single line, small % = big dollars), **Catering 10%** (per-head counts fluctuate), **Marketing 15%** (most flexible), **Contingency 0% drawn before T-14** (should not be touched), **all others 10%**.
178
+
179
+ ---
180
+
181
+ ## 5. Production Coordination
182
+
183
+ ### 5.1 Pre-production
184
+
185
+ **Site survey — non-negotiable for any first-time venue.** Record: power distribution and available amperage by area, network drops and their throughput, load-in vehicle access and dock dimensions, door widths for the largest scenic element, FOH position and sightlines, noise curfew, and rigging points with their load ratings. Route the technical read to `godmode-eventtech` — this skill records the findings and flags blockers, it does not validate the signal plan.
186
+
187
+ **Paperwork gate.** Nothing loads in without: certificate of insurance (COI) from every vendor on site, venue access permits, and crew credentials. These are the most common cause of a T-1 access failure.
188
+
189
+ **Run-of-show (ROS) is the single coordination artefact.** One document, versioned, owned by the production lead, distributed to every vendor. It defines: load-in window and sequence, soundcheck, doors, show start, each cue block, and load-out. A conflict discovered in the ROS is cheap. A conflict discovered at the dock is not.
190
+
191
+ **Speaker materials — deadline framework:**
192
+
193
+ | Milestone | Due | Deliverables |
194
+ |---|---|---|
195
+ | D-30 | Bio (25 / 50 / 100-word variants, third person) + headshot (min 300×300px) | |
196
+ | D-21 | Session abstract (75 words, attendee-focused), learning outcomes, AV requirements | |
197
+ | D-14 | Final slide deck, event template applied | |
198
+ | D-7 | Travel, hotel, ground transport, dietary and accessibility requirements | |
199
+ | D-1 | Attendance and schedule confirmed | |
200
+
201
+ Learning outcomes use action verbs only — **implement, apply, build, create, deploy, evaluate, identify, master**. Never: *explore, discuss, learn about, understand, discover, dive into, unpack*.
202
+
203
+ Banned in any bio or session description: *thought leader, visionary, guru, passionate about, world-class, cutting-edge, revolutionary, groundbreaking, leverage, synergize, transformative, innovative*. Replace with specific numbers, named clients, measurable outcomes, concrete credentials.
204
+
205
+ ### 5.2 Day-of flow
206
+
207
+ | Phase | Anchor | What must be true to advance |
208
+ |---|---|---|
209
+ | **Load-in** | T-1 or earlier | COI and permits verified per vendor, power patched and tested, ROS sequence confirmed with the dock |
210
+ | **Soundcheck** | Fixed slot, never "when ready" | Line check done, cue stack loaded, FOH and monitors positioned, walk-through with the client if contracted |
211
+ | **Doors** | Published start | House open, accessibility routes clear, front-of-house briefed on the ROS |
212
+ | **Show** | Per cue block | Production lead confirms each block against the ROS; deviations logged, not improvised |
213
+ | **Strike** | After clearance | Equipment accounted for against the load-in manifest, rentals checked out before the truck leaves |
214
+
215
+ **The strike manifest is the load-in manifest.** Count on the way in, count on the way out. Rentals left on site are invoiced at loss.
216
+
217
+ ### 5.3 Post-show wrap
218
+
219
+ Within 72 hours of strike:
220
+
221
+ - **Debrief** — what worked, what did not, what nearly failed. Blameless, specific, and it feeds the next ROS.
222
+ - **Invoice triggers** — headcount actuals vs. quoted, rental shortfalls, overtime hours, damage claims. Capture while the evidence exists.
223
+ - **Thank-you and forward look** — personalised, referencing what the attendee actually did, not a broadcast.
224
+ - **Asset archiving** — recorded content, photography, final ROS, run sheets, and the vendor contact list with performance notes, filed where the next production can find them.
225
+ - **Vendor performance note per vendor** — this is the input to §4's escalation tiers for the next event. A vendor who delivered three times running is not escalated on the first silence.
226
+
227
+ ### 5.4 Post-event reporting
228
+
229
+ Performance tiers: **Exceeded** (beat goal by 10%+ on primary metrics), **Met** (within 10%), **Missed** (more than 10% below on one or more), **Mixed** (hit some, missed others — say which and why).
230
+
231
+ Report structure: performance summary → what worked (with evidence) → what did not (with likely cause) → key insights (each tied to a data point) → specific recommendations for the next event → sponsor ROI if applicable.
232
+
233
+ Channel attribution is **inherently imperfect** — most attendees meet several touchpoints before registering. Report it honestly, acknowledge mixed sources, and never over-credit a single channel.
234
+
235
+ ---
236
+
237
+ ## 6. Verification
238
+
239
+ - [ ] Every event is classified into a phase (Normal / Planning / Advance / Load-In / Show Day) and that classification is stated, not assumed.
240
+ - [ ] Urgency thresholds are applied relative to event proximity, not absolute days.
241
+ - [ ] Every BLOCKED item names our team as owner — no BLOCKED item is left attributed to a vendor.
242
+ - [ ] Technical execution questions were routed to `godmode-eventtech` / `bdbmediastorm` rather than answered from this skill.
243
+ - [ ] No signal-flow, protocol, hardware-limit, or cue-execution instruction was issued from this skill.
244
+ - [ ] COI, permits, and crew credentials are confirmed before load-in, per vendor.
245
+ - [ ] The run-of-show is versioned, distributed, and owned by the production lead.
246
+ - [ ] Speaker materials are checked against the D-30 / D-21 / D-14 / D-7 / D-1 framework.
247
+ - [ ] Banned fluff words are absent from every bio, abstract, and session description.
248
+ - [ ] On show day, no vendor follow-up was sent by email.
249
+ - [ ] The strike manifest reconciles against the load-in manifest.
250
+ - [ ] Invoice triggers captured within 72 hours of strike.
251
+ - [ ] Attribution figures are presented with their acknowledged uncertainty.
252
+ - [ ] No upstream script, Python file, or Composio tool dependency was added.
@@ -0,0 +1,161 @@
1
+ ---
2
+ name: bdb-shipping-skill
3
+ description: "Use before starting any significant build or before shipping: problem-framing pre-flight, one-way/two-way door classification, ADR-lite decision logging, and post-ship outcome loop. Complements godmode-shipping (technical gate) and bdbresilience (error recovery)."
4
+ category: engineering-method
5
+ ---
6
+
7
+ # BDB Shipping Skill — Pre-Flight, Door Classification, ADR-lite, Post-Ship Loop
8
+
9
+ This skill fills the four decision-quality gaps that neither `godmode-shipping` nor `bdbresilience` covers:
10
+
11
+ - `godmode-shipping` → technical release gate (tests, checklist, feature flags, rollback, CI). Load it for that.
12
+ - `bdbresilience` → error recovery, 429-backoff, distributed locking, fault taxonomy. Load it for that.
13
+ - This skill → problem framing, reversibility classification, decision logging, outcome verification. Load it for this.
14
+
15
+ ---
16
+
17
+ ## Routing Table
18
+
19
+ | Situation | Skill to load |
20
+ |---|---|
21
+ | Running pre-launch checks, CI gate, WCAG, feature flags | `godmode-shipping` |
22
+ | Handling transient errors, rate limits, concurrent locks | `bdbresilience` |
23
+ | Starting a significant build — framing the problem | **this skill** |
24
+ | Making a one-way or two-way door decision | **this skill** |
25
+ | Recording a significant architectural choice | **this skill** |
26
+ | Confirming a ship actually delivered value | **this skill** |
27
+
28
+ Significant build means any work that takes more than one commit, touches a public contract, or requires a decision that is not immediately reversible. For a one-liner fix or a pure chore, skip this skill.
29
+
30
+ ---
31
+
32
+ ## 1. Pre-Build Problem-Framing (Pre-Flight)
33
+
34
+ Run these five questions before the first file is written. The answers go into the ADR-lite entry (section 3) or, for smaller work, into the commit message or PR description. A question with no answer is a blocker — do not proceed until it is answered.
35
+
36
+ **Q1 — What problem does this solve?**
37
+ State the user-visible or system-visible problem in one sentence. If you cannot write that sentence, the problem is not understood yet.
38
+
39
+ **Q2 — Why now, not next sprint?**
40
+ Name the forcing function: a deadline, a blocking dependency, a cost that compounds if delayed. "It would be nice" is not a forcing function.
41
+
42
+ **Q3 — What is explicitly out of scope?**
43
+ List at least one thing that is tempting but excluded. Scope creep almost always enters through an unguarded boundary. Write the boundary down.
44
+
45
+ **Q4 — What does success look like, measurably?**
46
+ Name a metric, a threshold, or an observable outcome that confirms the work delivered its value. "It works" is not measurable. "Error rate on /api/export drops below 0.1%" or "user can complete onboarding in under 3 steps" is.
47
+
48
+ **Q5 — Is this reversible?**
49
+ Classify the change (see section 2). If it is a one-way door, written justification is required before proceeding.
50
+
51
+ ---
52
+
53
+ ## 2. One-Way / Two-Way Door Classification
54
+
55
+ Before any irreversible change, name the door type. Gate accordingly.
56
+
57
+ ### Two-Way Doors — can proceed normally
58
+ Changes that can be undone with low cost and no external impact:
59
+ - UI layout, copy, styling changes
60
+ - Internal refactors with no API surface changes
61
+ - Configuration behind a feature flag
62
+ - Adding a new optional endpoint (additive-only)
63
+ - Internal test infrastructure changes
64
+
65
+ Two-way door work proceeds when pre-flight (section 1) passes. No extra gate.
66
+
67
+ ### One-Way Doors — require written justification and explicit GO
68
+ Changes that cannot be undone without significant cost, coordination, or external impact:
69
+ - Public API contract changes (breaking or removing a field, endpoint, or behavior)
70
+ - Database schema changes (especially dropping columns, changing types, removing tables)
71
+ - Published npm package versions (`npm publish` / `npm version`)
72
+ - Pricing or billing model changes
73
+ - Security model changes (auth scheme, permission structure, encryption at rest)
74
+ - Removing or renaming a public CLI command or config key
75
+ - Any change that alters an external integration contract other parties depend on
76
+
77
+ **Gate for one-way doors:**
78
+ 1. Write one sentence stating: what is changing, why it cannot be reversed, and what the migration/recovery path is for any party depending on it.
79
+ 2. Paste that sentence into the ADR-lite entry (section 3) under `Reversibility`.
80
+ 3. Wait for explicit GO before executing. The GO rule from AGENTS.md applies: a plan is read-only until the user replies with the literal word GO.
81
+
82
+ ### When the classification is unclear
83
+ Default to one-way. The cost of an unnecessary GO gate is one conversation turn. The cost of treating a one-way door as reversible is potentially irreversible.
84
+
85
+ ---
86
+
87
+ ## 3. ADR-lite Decision Log
88
+
89
+ Record any significant architectural or product decision — including every one-way door — using this format. Lightweight by design: one file per significant choice, stored in `docs/decisions/` or `production_artifacts/decisions/`. File name: `YYYY-MM-DD-<slug>.md`.
90
+
91
+ ```markdown
92
+ # ADR: <title, max 60 characters>
93
+
94
+ **Date:** YYYY-MM-DD
95
+ **Status:** proposed | accepted | superseded-by ADR-YYYY-MM-DD-<slug>
96
+
97
+ ## Context
98
+ One sentence: the situation that made this decision necessary.
99
+
100
+ ## Options Considered
101
+ - Option A: <what it is and why it was considered>
102
+ - Option B: <what it is and why it was considered>
103
+ - (add more; delete this line if only one option was viable)
104
+
105
+ ## Decision
106
+ <Which option was chosen, in one or two sentences.>
107
+
108
+ ## Reversibility
109
+ - Type: one-way | two-way
110
+ - Migration path (one-way only): <what a party depending on the old behavior must do>
111
+
112
+ ## Revisit Trigger
113
+ <The specific event or metric that would make this decision worth re-examining.
114
+ Examples: "If p95 latency on this path exceeds 200ms after the migration",
115
+ "If a second consumer needs to read this field", "After Q1 usage data is available.">
116
+ ```
117
+
118
+ Store the file. Reference it from the PR description. You do not need a framework, a tool, or a meeting — just the file.
119
+
120
+ ---
121
+
122
+ ## 4. Post-Ship Outcome Loop
123
+
124
+ Define the check-back before the ship, not after. At the time of shipping, record this alongside the ADR-lite entry or in the PR description:
125
+
126
+ **Check-back trigger:** When will you look? Choose one:
127
+ - Time-based: "Check in N days." (N = 7 for most features; 1 for anything touching the critical path.)
128
+ - Metric-based: "Check when [metric] reaches [threshold]."
129
+
130
+ **Success signal:** What observable outcome confirms the work delivered its stated value (from Q4 above)?
131
+
132
+ **Rollback signal:** What observable outcome triggers rollback consideration? Be specific: name the metric and threshold. "Something seems wrong" is not a signal. "Error rate on the affected endpoint exceeds 1% over a 15-minute window" is.
133
+
134
+ **Who checks?** Default: the person who shipped it. If that person is unavailable, name a fallback now.
135
+
136
+ Post-ship check is not optional for one-way door changes. For two-way door changes it is recommended but can be skipped if the change is trivially observable (e.g., a style change that is visible on first load).
137
+
138
+ ---
139
+
140
+ ## 5. Common Rationalizations
141
+
142
+ | Rationalization | Reality |
143
+ |---|---|
144
+ | "I'll define success after I ship." | Success defined post-hoc matches whatever shipped, not what the user needed. Write it before. |
145
+ | "This is just a small refactor, the door classification doesn't apply." | Classification is fastest on small changes. The blast radius of a wrong call on a large change makes the small effort worthwhile. |
146
+ | "I'll write the ADR after the decision is stable." | A decision that has already shipped is not a decision — it is a fact. Write it when options are still open. |
147
+ | "The rollback trigger is obvious, I don't need to write it down." | Obvious rollback signals are still missed under incident pressure. Write the number before the incident. |
148
+ | "The post-ship check-back is someone else's job." | If no one is named, no one owns it. Name someone before shipping. |
149
+
150
+ ---
151
+
152
+ ## 6. Verification Checklist
153
+
154
+ Before calling this skill's work done:
155
+
156
+ - [ ] All five pre-flight questions answered (section 1)
157
+ - [ ] Door type classified — one-way or two-way (section 2)
158
+ - [ ] If one-way: written justification present and GO received before execution
159
+ - [ ] ADR-lite entry created for any significant decision or one-way door change, stored in `docs/decisions/` or `production_artifacts/decisions/`
160
+ - [ ] Post-ship check-back defined: trigger, success signal, rollback signal, owner (section 4)
161
+ - [ ] ADR-lite entry referenced from the PR description or commit message
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: godmode-eventtech
3
- description: "Use when designing real-time live performance architectures, signal flows, protocol routings (OSC, DMX), or validating hardware limits."
3
+ description: "Use for real-time performance and multimedia operator work: technical show-control execution (signal flows, OSC/DMX, MCP orchestration, hardware limits) for tools like grandMA3, Resolume, Unreal, Rhino, Vectorworks, and Adobe MCP."
4
4
  category: media-eventtech
5
5
  ---
6
6
 
@@ -12,6 +12,9 @@ This skill is the architectural authority for **Real-Time Performance, Signal Fl
12
12
 
13
13
  ## 1. Role & Architectural Boundaries
14
14
 
15
+ For agency-layer tasks (vendor management, production coordination, inbox triage,
16
+ pre-show logistics), load `bdb-eventagency-skill` alongside this skill.
17
+
15
18
  * **Real-Time & Live Show Authority:** Focuses on deterministic frame timing, zero-latency signal routing, hardware boundaries, and physical protocol management (OSC, Art-Net, sACN, DMX, MIDI, SMPTE, NDI, Spout/Syphon).
16
19
  * **Peer Integration:** Operates alongside specialized media and 3D creation skills, enforcing strict hardware stability, network bandwidth limits, and live-environment fault tolerance across all event technology systems.
17
20
 
@@ -139,6 +139,8 @@ When the user chose to watch it, add the absolute path to `projects` in
139
139
  `~/.openwiki/projects.json` — that file is the daemon's watch list. Merge into
140
140
  it; never rewrite it.
141
141
 
142
+ **Domain Registration (WORKTREE.md)**: Every project belongs to a domain (e.g., `~/dev/bdb-dev/`). To ensure multi-agent navigation works, the parent domain directory must have a `WORKTREE.md` acting as a map. Check if `../WORKTREE.md` exists. If it does, append a link to this new project specifying its Slug, Domain, active Harnesses, and a pointer to its `.aos/project.json`. If it doesn't exist, create it with a simple markdown list structure.
143
+
142
144
  For memB, write the project card through the MCP with the slug as `project_id`
143
145
  and `project_card` as `category` — domain-category rows are dead weight, since
144
146
  the hook whitelist only injects `project_card`/`godmode`:
@@ -3,7 +3,7 @@
3
3
  One-paragraph description of what this project is and who uses it. An agent
4
4
  that reads only this file should understand what it is touching.
5
5
 
6
- > Harness files: `CLAUDE.md`, `GEMINI.md` and `CODEX.md` are symlinks to this
6
+ > Harness files: `CLAUDE.md`, `RULES.md` and `CODEX.md` are symlinks to this
7
7
  > file. Every rule lives here exactly once.
8
8
 
9
9
  ## Stack
@@ -83,7 +83,7 @@ function checkAgentDocs() {
83
83
  add('docs', 'AGENTS.md', existsSync(agents), existsSync(agents) ? `${readFileSync(agents, 'utf8').split('\n').length} lines` : 'missing — no repo-specific agent rules',
84
84
  'Write AGENTS.md (see the /aos-project-init template).');
85
85
 
86
- for (const alias of ['CLAUDE.md', 'GEMINI.md', 'CODEX.md']) {
86
+ for (const alias of ['CLAUDE.md', 'RULES.md', 'CODEX.md']) {
87
87
  const f = p(alias);
88
88
  let ok = false; let detail = 'missing';
89
89
  if (existsSync(f)) {
@@ -232,7 +232,7 @@ harness was never installed into.
232
232
  context is written into the rule files that harness loads instead:
233
233
 
234
234
  ```bash
235
- python3 ~/.agents/memB/memb_auto_inject.py --global # GEMINI.md, CODEX.md, …
235
+ python3 ~/.agents/memB/memb_auto_inject.py --global # RULES.md, CODEX.md, …
236
236
  python3 ~/.agents/memB/memb_auto_inject.py --dir <repo> # a project's AGENTS.md
237
237
  ```
238
238
 
@@ -174,7 +174,7 @@ function checkHooks() {
174
174
  // the row would go green over a hook carrying a bug this version fixed.
175
175
  // Hooks that carry an `aos-hook-version:` line are checked against what this
176
176
  // release expects; the ones that do not are existence-only.
177
- const EXPECTED_VERSION = { 'memb-inject.mjs': 5 };
177
+ const EXPECTED_VERSION = { 'memb-inject.mjs': 6 };
178
178
  const versionOf = (text) => {
179
179
  const m = /^\/\/\s*aos-hook-version:\s*(\d+)/m.exec(text);
180
180
  return m ? Number(m[1]) : null;
@@ -45,9 +45,9 @@ Reach for `test-driven-development` or `tdd-workflow` on their own when you want
45
45
 
46
46
  When no native AOS skill fits, search the markdown-only ECC store before starting a pipeline:
47
47
 
48
- - `aos store search <query>` finds available fallback skills and agents.
49
- - `aos store install <name> --net` installs a verified item after explicit user action.
50
- - `aos store list --type=skills` and `aos store list --type=agents` show the catalogue.
48
+ - `aos-store search <query>` finds available fallback skills and agents.
49
+ - `aos-store install <name> --net` installs a verified item after explicit user action.
50
+ - `aos-store list --type=skills` and `aos-store list --type=agents` show the catalogue.
51
51
  - The core remains the trusted AOS skill set; the store is a fallback, not a reason to bypass the startcycle validation.
52
52
  - A missing `--skill` is reported by the dispatcher with the exact install command. It never downloads during a run.
53
53
 
@@ -8,7 +8,9 @@ source: bdb
8
8
 
9
9
  # deja: On-Demand Session Memory
10
10
 
11
- `deja` indexes this machine's agent transcripts into a local, secret-redacted store and answers three questions on demand. It is installed together with memB. There is no boot sequence — never call deja at session start; reach for it at one of the moments below.
11
+ `deja` indexes this machine's agent transcripts into a local, secret-redacted store and answers three questions on demand. It is installed together with memB.
12
+
13
+ The session start is already covered: the memB hook (`memb-inject.mjs`) appends `deja wip` for the current project to its SessionStart block, under "Last session here". Read that instead of calling `deja wip` yourself at start; reach for deja at one of the moments below.
12
14
 
13
15
  ## 1. An error just happened
14
16