@ericrisco/rsc 0.1.44 → 0.1.45
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/README.md +1 -1
- package/manifest.json +110 -86
- package/package.json +1 -1
- package/scripts/lib/domains.js +1 -1
- package/scripts/skill-migration-brief.md +104 -0
- package/skills/ab-testing/SKILL.md +9 -41
- package/skills/accessibility/SKILL.md +5 -7
- package/skills/ads/SKILL.md +9 -24
- package/skills/agent-eval/SKILL.md +7 -33
- package/skills/agent-safety/SKILL.md +7 -14
- package/skills/ai-media/SKILL.md +4 -20
- package/skills/analytics/SKILL.md +8 -30
- package/skills/analyze/SKILL.md +24 -59
- package/skills/angular/SKILL.md +12 -25
- package/skills/api-connector-builder/SKILL.md +10 -27
- package/skills/api-design/SKILL.md +7 -14
- package/skills/article-writing/SKILL.md +1 -18
- package/skills/astro/SKILL.md +36 -54
- package/skills/author-skill/SKILL.md +41 -74
- package/skills/author-skill/evals/README.md +5 -5
- package/skills/author-skill/evals/cases.yaml +8 -8
- package/skills/author-skill/references/description-recipe.md +25 -26
- package/skills/author-skill/references/eval-authoring.md +1 -1
- package/skills/author-skill/references/rsc-conventions.md +1 -1
- package/skills/automation-flows/SKILL.md +6 -16
- package/skills/automation-strategy/SKILL.md +1 -9
- package/skills/aws-essentials/SKILL.md +6 -23
- package/skills/backups/SKILL.md +1 -7
- package/skills/bash-scripting/SKILL.md +5 -9
- package/skills/bookkeeping/SKILL.md +2 -10
- package/skills/brand-identity/SKILL.md +18 -44
- package/skills/brand-voice/SKILL.md +4 -31
- package/skills/building-agents/SKILL.md +20 -103
- package/skills/business-intelligence/SKILL.md +9 -23
- package/skills/calendar-scheduling/SKILL.md +11 -27
- package/skills/case-studies/SKILL.md +3 -8
- package/skills/chatbot/SKILL.md +6 -23
- package/skills/chrome-extension/SKILL.md +2 -2
- package/skills/clarify/SKILL.md +31 -72
- package/skills/clickhouse-analytics/SKILL.md +2 -8
- package/skills/client-onboarding/SKILL.md +17 -19
- package/skills/cloudflare/SKILL.md +3 -8
- package/skills/code-review/SKILL.md +10 -23
- package/skills/codebase-onboarding/SKILL.md +2 -7
- package/skills/cold-outreach/SKILL.md +9 -30
- package/skills/community/SKILL.md +4 -31
- package/skills/competitor-watch/SKILL.md +20 -35
- package/skills/compliance/SKILL.md +10 -37
- package/skills/compose-multiplatform/SKILL.md +1 -1
- package/skills/constitution/SKILL.md +8 -35
- package/skills/content-engine/SKILL.md +4 -16
- package/skills/context-budget/SKILL.md +3 -21
- package/skills/continuous-learning/SKILL.md +10 -40
- package/skills/contracts/SKILL.md +6 -17
- package/skills/coolify/SKILL.md +8 -14
- package/skills/cost-tracking/SKILL.md +3 -11
- package/skills/course-builder/SKILL.md +17 -45
- package/skills/course-storytelling/SKILL.md +26 -94
- package/skills/cpp/SKILL.md +26 -71
- package/skills/csharp-dotnet/SKILL.md +19 -38
- package/skills/customer-support/SKILL.md +14 -37
- package/skills/dashboard/SKILL.md +6 -26
- package/skills/data-cleaning/SKILL.md +37 -63
- package/skills/data-policy/SKILL.md +8 -21
- package/skills/data-scraper/SKILL.md +1 -7
- package/skills/debug/SKILL.md +10 -49
- package/skills/deployment/SKILL.md +38 -101
- package/skills/design/SKILL.md +34 -116
- package/skills/fable-operator/SKILL.md +1 -4
- package/skills/fastapi/SKILL.md +50 -82
- package/skills/flutter/SKILL.md +41 -89
- package/skills/go/SKILL.md +57 -105
- package/skills/harness/SKILL.md +52 -68
- package/skills/implement/SKILL.md +1 -1
- package/skills/init/SKILL.md +152 -168
- package/skills/marketing/SKILL.md +30 -80
- package/skills/nextjs/SKILL.md +42 -116
- package/skills/orient/SKILL.md +25 -20
- package/skills/parallel/SKILL.md +9 -75
- package/skills/plan/SKILL.md +92 -165
- package/skills/postgresdb/SKILL.md +52 -72
- package/skills/presentations/SKILL.md +49 -87
- package/skills/python/SKILL.md +23 -72
- package/skills/react/SKILL.md +19 -67
- package/skills/review/SKILL.md +22 -52
- package/skills/rust/SKILL.md +40 -115
- package/skills/sdd-init/SKILL.md +9 -14
- package/skills/secure-coding/SKILL.md +80 -109
- package/skills/ship/SKILL.md +25 -55
- package/skills/tasks/SKILL.md +37 -61
- package/skills/typescript/SKILL.md +22 -55
- package/skills/verify/SKILL.md +8 -32
- package/skills/viral-score/SKILL.md +122 -0
- package/skills/viral-score/evals/README.md +16 -0
- package/skills/viral-score/evals/cases.yaml +50 -0
- package/skills/vue-nuxt/SKILL.md +45 -106
- package/skills/worktrees/SKILL.md +24 -69
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: content-engine
|
|
3
|
-
description: "Use when a content operation needs a SYSTEM
|
|
3
|
+
description: "Use when a content operation needs a SYSTEM: a dated editorial calendar built top-down from pillars, plus the stage gates, briefs, WIP limits and 1:10 atomization plan that move each slot to publish-ready. NOT writing the pieces (that is `article-writing`), NOT publishing them (that is `social-publisher`), NOT keyword research (that is `seo-geo`)."
|
|
4
4
|
tags: [content, editorial-calendar, content-pipeline, repurposing, marketing-ops]
|
|
5
5
|
recommends: [brand-voice, seo-geo, social-publisher, article-writing, video-shorts, newsletter, automation-flows]
|
|
6
6
|
origin: risco
|
|
@@ -8,17 +8,10 @@ origin: risco
|
|
|
8
8
|
|
|
9
9
|
# Content Engine — The Calendar and the Pipeline That Feeds It
|
|
10
10
|
|
|
11
|
-
*The factory floor and the production schedule, not the words off any single station.* You own two machines: the **calendar** (what gets made and when) and the **pipeline** (how each slot moves from idea to publish-ready). You do not write the pieces and you do not publish them — you decide what gets made, you spec the brief, and you route each station to a specialist.
|
|
11
|
+
*The factory floor and the production schedule, not the words off any single station.* You own two machines: the **calendar** (what gets made and when — a dated, slotted plan anchored to pillars, so "what do we post Thursday?" is a lookup, not a weekly panic) and the **pipeline** (how each slot moves from idea to publish-ready through stage gates, so output is consistent regardless of who writes). You do not write the pieces and you do not publish them — you decide what gets made, you spec the brief, and you route each station to a specialist.
|
|
12
12
|
|
|
13
13
|
Content fails not from one bad post but from **no system**: no documented cadence, no brief, no stage gate, pillars that never get atomized. ~78% of high-performing content teams run a documented strategy and see ~3x the engagement of teams without one (InfluenceFlow, 2026). This skill is that system.
|
|
14
14
|
|
|
15
|
-
## The two machines
|
|
16
|
-
|
|
17
|
-
- **Calendar = what + when.** A dated, slotted plan anchored to pillars. "What do we post Thursday?" becomes a lookup, not a weekly panic.
|
|
18
|
-
- **Pipeline = how it moves.** Every slot travels `idea → brief → draft → edit → atomize → publish-ready` through stage gates, so output is consistent regardless of who writes.
|
|
19
|
-
|
|
20
|
-
**Hard rule: build top-down, slot last.** Personas → Pillars → Clusters → Assets, in that order. The calendar is derived from this architecture; it is never a bottom-up pile of "post ideas." Bottom-up calendars are the #1 failure mode — they have no theme, no leverage, and no reason any given post exists. *Why: structure makes topic choice a lookup, not a creative emergency every Monday.*
|
|
21
|
-
|
|
22
15
|
## Ground first (STOP gate)
|
|
23
16
|
|
|
24
17
|
You plan content for a real brand; you do not invent its strategy. Before building anything, read what already exists.
|
|
@@ -31,6 +24,8 @@ You plan content for a real brand; you do not invent its strategy. Before buildi
|
|
|
31
24
|
|
|
32
25
|
## Build the calendar
|
|
33
26
|
|
|
27
|
+
**Build top-down, slot last.** Personas → Pillars → Clusters → Assets, in that order. The calendar is derived from this architecture; it is never a bottom-up pile of "post ideas." Bottom-up calendars are the #1 failure mode — they have no theme, no leverage, and no reason any given post exists. *Why this one is absolute: structure makes topic choice a lookup, not a creative emergency every Monday.*
|
|
28
|
+
|
|
34
29
|
**Four-layer architecture (counts are defaults, state them):**
|
|
35
30
|
|
|
36
31
|
| Layer | Count | What it is |
|
|
@@ -105,13 +100,6 @@ Full template with a filled example → `references/brief-and-pipeline.md`. *Why
|
|
|
105
100
|
|
|
106
101
|
**WIP limits matter more than throughput.** Cap in-flight slots per the team-size table; pulling a new idea before finishing the last one is how the calendar becomes a graveyard.
|
|
107
102
|
|
|
108
|
-
**Who fills each station — route, do not write:**
|
|
109
|
-
|
|
110
|
-
- Draft/edit of a long-form article → `../article-writing/SKILL.md`.
|
|
111
|
-
- Newsletter issue copy → `newsletter`.
|
|
112
|
-
- Short-form video script/storyboard → `video-shorts`.
|
|
113
|
-
- Landing/launch page copy → `../marketing/SKILL.md`.
|
|
114
|
-
|
|
115
103
|
**AI is a station, not the author.** Use AI for research, outlines, drafts, repurposing, and angle-testing. Humans decide which pillars matter, which stories to tell, and what "good" is. Voice is grounded via `brand-voice`, never invented (Entasher 2025-11-29).
|
|
116
104
|
|
|
117
105
|
## Atomization (1:10)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: context-budget
|
|
3
|
-
description: "Use when a long-horizon task is filling the context window and you must decide what to keep, offload, drop, or hand off
|
|
3
|
+
description: "Use when a long-horizon task is filling the context window and you must decide what to keep, offload, drop, or hand off to a fresh window — when to compact, what the summary must preserve, and whether to isolate a read-heavy subtask in a subagent. NOT dollar spend or caps (that is cost-tracking), NOT finding context via embeddings (that is rag)."
|
|
4
4
|
tags: ["context-window", "token-budget", "compaction", "context-rot", "long-running-agents", "handoff", "subagents"]
|
|
5
5
|
recommends: ["cost-tracking", "rag", "parallel", "building-agents", "harness"]
|
|
6
6
|
origin: risco
|
|
@@ -12,21 +12,7 @@ The context window is RAM, not a hard drive. Full ≠ free: a window stuffed to
|
|
|
12
12
|
|
|
13
13
|
> **The one rule:** if you can reconstruct a thing from a file or from git, it does not belong resident in the window. Keep load-bearing-right-now; evict the rest. The cost of forgetting is one re-read; the cost of hoarding is silent quality rot on every turn that follows.
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
- A task is plainly bigger than one window: a large refactor, a multi-file migration, "build the whole app", a multi-hour research or agent run.
|
|
18
|
-
- You feel degradation before the gauge confirms it: repeating yourself, re-reading files you already read, drifting from the plan, contradicting an earlier decision.
|
|
19
|
-
- You are setting up a harness that must survive across many sessions and fresh windows.
|
|
20
|
-
- You are deciding *when* to compact, *what* to preserve, or *whether* to spawn a subagent vs. inline a big read.
|
|
21
|
-
|
|
22
|
-
## When NOT to use (and where to go)
|
|
23
|
-
|
|
24
|
-
- Pricing tokens, ledgering spend, firing a budget alert or a hard `$` cap → `../cost-tracking/SKILL.md`. That skill owns *money*; this one owns *working-memory quality*. Same words ("token budget"), different unit: dollars vs. attention.
|
|
25
|
-
- Finding the *right* context to inject via embeddings/chunking → `../rag/SKILL.md`. RAG is *how you find* context; this is *how much* you let live and *when to evict*.
|
|
26
|
-
- Crafting the prompt text, few-shot, or output format → `../prompt-engineering/SKILL.md`.
|
|
27
|
-
- Designing the agent loop, tool schemas, or provider adapter → `../building-agents/SKILL.md`.
|
|
28
|
-
- Fanning out genuinely independent work → `../parallel/SKILL.md`. This skill *uses* subagents as a context-isolation tactic and points there, but does not own the partition-then-gather discipline.
|
|
29
|
-
- The 01-TOOLS / 02-DOCS control plane of a whole workspace → `../harness/SKILL.md`.
|
|
15
|
+
Neighbours, so you don't do their job here: pricing tokens, spend ledgers and hard `$` caps are `../cost-tracking/SKILL.md` — same words ("token budget"), different unit, dollars vs. attention. Finding the *right* context via embeddings/chunking is `../rag/SKILL.md`; RAG is *how you find* context, this is *how much* you let live and *when to evict*. Prompt text, few-shot and output format are `../prompt-engineering/SKILL.md`; the agent loop, tool schemas and provider adapters are `../building-agents/SKILL.md`; partition-then-gather fan-out of independent work is `../parallel/SKILL.md` (this skill *uses* subagents as a context-isolation tactic but does not own that discipline); the 01-TOOLS / 02-DOCS control plane is `../harness/SKILL.md`.
|
|
30
16
|
|
|
31
17
|
## Read the gauge first
|
|
32
18
|
|
|
@@ -102,7 +88,7 @@ drop: the exploratory diffs and the debugging transcript.
|
|
|
102
88
|
|
|
103
89
|
When the task is bigger than one window, the win is making a *fresh* window resume the work in a single read. The long-running harness pattern (Anthropic, "Effective harnesses for long-running agents", published 2025-11-26, accessed 2026-06-02) is: an initializer session sets up the work, then each coding session works **one unit at a time** and leaves a structured update — a progress log (e.g. `claude-progress.txt`) plus git history plus a structured feature list — so the next window reconstructs state without you re-explaining it.
|
|
104
90
|
|
|
105
|
-
Write the handoff *before* you run out of room, not after quality already cratered. The template (Goal / Done / In-progress / Next / Gotchas / Key paths)
|
|
91
|
+
Write the handoff *before* you run out of room, not after quality already cratered. The template (Goal / Done / In-progress / Next / Gotchas / Key paths) and a good-vs-bad summary checklist are in `references/handoff-and-compaction.md`.
|
|
106
92
|
|
|
107
93
|
## Budget allocation heuristic
|
|
108
94
|
|
|
@@ -126,7 +112,3 @@ A starting split for a production agent's window — a **heuristic, not a law**
|
|
|
126
112
|
| Paste a subagent's full transcript back into the parent | Defeats the entire point of isolation — the child's bloat lands in the parent | Take back only the answer/artifact, never the transcript |
|
|
127
113
|
| Treat the window as infinite because the model "has 1M" | Context rot scales with tokens regardless of the limit | Budget against attention, not the advertised ceiling |
|
|
128
114
|
| Carry dead-end exploration forward | The journey isn't the decision; it's pure noise | Reduce to the conclusion + the commit that proves it |
|
|
129
|
-
|
|
130
|
-
## Reference
|
|
131
|
-
|
|
132
|
-
`references/handoff-and-compaction.md` — the server-side compaction API contract (exact header, edit type, trigger defaults/min, `pause_after_compaction`, the append-the-block rule, default summary prompt), a copy-paste progress-file template, and a good-vs-bad summary checklist. Offloaded here because it's API-version-specific and rots fastest.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: continuous-learning
|
|
3
|
-
description: "Use when
|
|
3
|
+
description: "Use when a mistake, correction, or surprise taught the workspace something that must stick — a retro or postmortem, the same agent error corrected twice, a resolved bug's root cause, scattered notes-to-self — and route that lesson to the durable surface that fires next time. NOT a forward choice with alternatives (that is `decision-records`)."
|
|
4
4
|
tags: [learning, retro, postmortem, feedback-loop, knowledge, meta]
|
|
5
5
|
recommends: [decision-records, author-skill, debug, harness, knowledge-ops]
|
|
6
6
|
origin: risco
|
|
@@ -12,43 +12,21 @@ This is the engine that makes the system get better every time it is wrong. When
|
|
|
12
12
|
|
|
13
13
|
One premise is load-bearing: **a lesson that lives only in chat is gone at the next compaction.** Verbal reflection only changes future behaviour when it is persisted to memory the agent actually reads next time (this is the Reflexion mechanism — self-reflection written to durable memory, not held in the conversation). In this harness, "memory" is a concrete set of surfaces: a `SKILL.md` body, `02-DOCS/wiki/harness/decisions.md`, `02-DOCS/wiki/harness/user-profile.md`, a root `CLAUDE.md` rule, or a `verify.sh` check. **Chat is not memory.** A lesson is "captured" only when it has landed in one of those.
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
Read `02-DOCS/wiki/harness/user-profile.md` for the accompaniment dial before you narrate. It governs narration only — the capture loop runs identically at every level.
|
|
16
16
|
|
|
17
|
-
##
|
|
18
|
-
|
|
19
|
-
Before you narrate anything, read `02-DOCS/wiki/harness/user-profile.md` for the **accompaniment dial**, same convention as every harness skill:
|
|
20
|
-
|
|
21
|
-
- **L0** — capture the lesson silently, land the durable write, move on. No play-by-play.
|
|
22
|
-
- **L1–L2** — state the root cause and the home in a line or two.
|
|
23
|
-
- **L3** — walk the root-cause reasoning out loud and confirm the durable home with the user before writing.
|
|
24
|
-
|
|
25
|
-
The dial governs narration only. The capture loop runs at every level — the difference is how much you say while doing it.
|
|
26
|
-
|
|
27
|
-
## When to use
|
|
28
|
-
|
|
29
|
-
- A retro / postmortem: "what did we learn from this incident or this sprint".
|
|
30
|
-
- A recurring correction — the user has fixed the same agent mistake 2+ times ("you keep doing X — stop").
|
|
31
|
-
- A surprise: an assumption was wrong, a command failed in a non-obvious way, a provider behaved unexpectedly, an eval missed a real bug.
|
|
32
|
-
- After `debug` resolves: distil the non-obvious root cause into a durable note before it evaporates.
|
|
33
|
-
- A periodic sweep: harvest scattered corrections / TODOs / notes-to-self into their right durable homes.
|
|
34
|
-
|
|
35
|
-
## When NOT to use
|
|
36
|
-
|
|
37
|
-
- **A forward decision with alternatives** (we chose X over Y, here is why) → `../decision-records/SKILL.md`. A choice is not a lesson from a mistake.
|
|
38
|
-
- **Authoring/editing a skill's body, description, or evals** as the task → `../author-skill/SKILL.md`. You *decide* a lesson belongs in skill Z and hand the edit over; you do not own SKILL.md craft.
|
|
39
|
-
- **Diagnosing the bug right now** → `../debug/SKILL.md`. You come after.
|
|
40
|
-
- **Generic doc/wiki consolidation or inbox sweep** → `../harness/SKILL.md` 02-DOCS engine. You produce the occasional wiki article *via* that protocol; your trigger is "we learned something the hard way", not "organise these docs".
|
|
41
|
-
- **Scheduling a recurring task** → `loop` / `schedule` harness CLI. You may *recommend* a cadence; you are not a scheduler.
|
|
42
|
-
- **Curating reference knowledge / "what do I know about X"** → `../knowledge-ops/SKILL.md`. That is reference knowledge; you handle experiential, mistake-derived knowledge.
|
|
17
|
+
## Boundaries
|
|
43
18
|
|
|
44
19
|
| Situation | Owner | Why |
|
|
45
20
|
|---|---|---|
|
|
46
|
-
| "We chose Postgres over Mongo, here's the why + the rejected options" |
|
|
21
|
+
| "We chose Postgres over Mongo, here's the why + the rejected options" | `../decision-records/SKILL.md` | forward choice with alternatives; a choice is not a lesson from a mistake |
|
|
47
22
|
| "The migration failed because Postgres rejects NULL on the PK — never assume that again" | `continuous-learning` | backward lesson from a mistake |
|
|
48
|
-
| "Find the bug causing the 500" |
|
|
23
|
+
| "Find the bug causing the 500" | `../debug/SKILL.md` | in-the-moment diagnosis; you run after it resolves |
|
|
49
24
|
| "Now that debug found it, make sure we never ship that pattern again" | `continuous-learning` | post-resolution capture |
|
|
50
|
-
| "Write the SKILL.md and evals for pr-describe" |
|
|
51
|
-
| "This lesson means the deploy skill needs a new guardrail" | `continuous-learning`
|
|
25
|
+
| "Write the SKILL.md and evals for pr-describe" | `../author-skill/SKILL.md` | skill craft — body, description, evals |
|
|
26
|
+
| "This lesson means the deploy skill needs a new guardrail" | `continuous-learning` decides the home → `../author-skill/SKILL.md` makes the edit | you route, it writes |
|
|
27
|
+
| "Consolidate these docs / sweep the inbox" | `../harness/SKILL.md` | generic 02-DOCS filing; your trigger is "we learned something the hard way" |
|
|
28
|
+
| "What do I know about X" | `../knowledge-ops/SKILL.md` | reference knowledge, as opposed to mistake-derived experiential knowledge |
|
|
29
|
+
| "Run this sweep every week" | `loop` / `schedule` harness CLI | you may recommend a cadence; you are not a scheduler |
|
|
52
30
|
|
|
53
31
|
## The capture loop
|
|
54
32
|
|
|
@@ -126,11 +104,3 @@ To harvest scattered corrections and notes-to-self on a cadence, do not reimplem
|
|
|
126
104
|
| Capturing a forward choice here | that is a decision, not a lesson | route to `decision-records` |
|
|
127
105
|
| A vague vector-blob note | won't retrieve, can't be acted on | situation-tag it in the entry format |
|
|
128
106
|
| Starting to diagnose the bug | that is `debug`'s job | come here *after* it resolves, with the root cause |
|
|
129
|
-
|
|
130
|
-
## Cross-references
|
|
131
|
-
|
|
132
|
-
- `../decision-records/SKILL.md` — forward choices with alternatives.
|
|
133
|
-
- `../author-skill/SKILL.md` — the writer for any lesson whose home is a skill body, description, or eval.
|
|
134
|
-
- `../debug/SKILL.md` — in-the-moment diagnosis; you run after it.
|
|
135
|
-
- `../harness/SKILL.md` — the wiki ingest/sweep engine and the durable surfaces you route into.
|
|
136
|
-
- `../knowledge-ops/SKILL.md` — reference knowledge, as opposed to mistake-derived experiential knowledge.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: contracts
|
|
3
|
-
description: "Use when drafting or reviewing
|
|
3
|
+
description: "Use when drafting or reviewing business contracts and clauses in plain language — NDAs, MSAs, SOWs, contractor agreements, risk boilerplate (liability caps, indemnity, force majeure, termination, IP) — or redlining a counterparty's paper. NOT consumer Terms of Service (that is terms-conditions) and NOT the signing workflow (that is e-signature)."
|
|
4
4
|
tags: [contracts, legal, ndas, msa, sow, clauses, redlining, risk-allocation]
|
|
5
5
|
recommends: [terms-conditions, e-signature, gdpr-privacy, proposals, ip-trademark, invoicing]
|
|
6
6
|
origin: risco
|
|
@@ -10,12 +10,6 @@ origin: risco
|
|
|
10
10
|
|
|
11
11
|
You draft and review everyday business contracts and individual clauses in plain language. You are not a lawyer and you never say you are. Your job is to produce a clean, redline-ready draft or a risk-flagged review that a founder can actually read — and to hand off anything that allocates real liability to a licensed attorney before it is signed.
|
|
12
12
|
|
|
13
|
-
Three rules sit above everything below. Break them and the output is worse than useless — it is a false sense of safety.
|
|
14
|
-
|
|
15
|
-
1. **Plain English by default.** A contract nobody can read is a contract nobody can negotiate. Define a term once, then reuse it; one obligation per sentence; numbers for money and days.
|
|
16
|
-
2. **Name the risk each clause allocates.** Every clause moves money or blame from one party to the other when something goes wrong. State who pays, in one line, beside the clause.
|
|
17
|
-
3. **Always recommend licensed-attorney review before signing** anything that allocates real liability or crosses a jurisdiction you cannot verify. Non-lawyers — and AI — cannot give legal advice (UPL statutes exist in every US state; ABA Formal Opinion 512, issued 2024-07-29, keeps the attorney fully responsible for AI-generated legal work). You draft and flag; a lawyer signs off.
|
|
18
|
-
|
|
19
13
|
## First move: identify the instrument and the side
|
|
20
14
|
|
|
21
15
|
Before drafting a word, fix two things: **which instrument** this is, and **which side the operator is on**. Every default flips on the side. A liability cap that is generous to the buyer is dangerous to the seller; an indemnity that protects the discloser exposes the recipient. Ask "are we the buyer or the seller? the discloser or the recipient?" first.
|
|
@@ -63,7 +57,7 @@ Good: Either party may terminate if the other materially breaches and fails to
|
|
|
63
57
|
|
|
64
58
|
## The clauses that allocate risk
|
|
65
59
|
|
|
66
|
-
|
|
60
|
+
Every clause below moves money or blame from one party to the other when something goes wrong, so state who pays in one line beside the clause you emit. For each: what it allocates, the safe default, the carve-outs. Copy-ready text lives in `references/clause-library.md`.
|
|
67
61
|
|
|
68
62
|
**Limitation of liability** — allocates *how much* one party can lose when the deal goes wrong. Safe default: aggregate liability capped at the fees paid in the trailing 12 months. Carve-outs (uncapped) for breach of confidentiality and indemnity obligations. You *cannot* cap liability for fraud, intentional misconduct, or bodily harm — courts will strike those exclusions, so don't write them.
|
|
69
63
|
|
|
@@ -89,7 +83,7 @@ When the operator hands you the other side's draft, pass through it in this orde
|
|
|
89
83
|
|
|
90
84
|
Separate **non-negotiables** (uncapped liability, one-way indemnity, IP grab that takes your background IP) from **nice-to-haves** (a longer cure period, tighter notice). Spend your leverage on the first list.
|
|
91
85
|
|
|
92
|
-
Tells of a one-sided draft: uncapped indemnity; "mutual" obligations that only bind you on inspection; auto-renewal with a long opt-out notice window; a termination-for-convenience right only the counterparty holds; a liability cap with no confidentiality/indemnity carve-out (good for them, bad for you). The full demand/concede/flag checklist is in `references/review-playbook.md`.
|
|
86
|
+
Tells of a one-sided draft: uncapped indemnity; "mutual" obligations that only bind you on inspection; auto-renewal with a long opt-out notice window; a termination-for-convenience right only the counterparty holds; a liability cap with no confidentiality/indemnity carve-out (good for them, bad for you). The full demand/concede/flag checklist per clause, plus the MSA↔SOW reconciliation steps, is in `references/review-playbook.md`.
|
|
93
87
|
|
|
94
88
|
## MSA + SOW: rulebook and playbook
|
|
95
89
|
|
|
@@ -97,10 +91,10 @@ The MSA is the rulebook — it governs services, payment, and liability for the
|
|
|
97
91
|
|
|
98
92
|
Before signing an SOW under an existing MSA, cross-check that the SOW does not contradict the MSA (a different liability cap or payment term hidden in the SOW is a trap). Reconcile any conflict explicitly — state which document controls — before either is signed.
|
|
99
93
|
|
|
100
|
-
## The legal boundary
|
|
94
|
+
## The legal boundary
|
|
101
95
|
|
|
102
|
-
- **You do not give legal advice.** Every US state's Unauthorized Practice of Law statutes bar non-lawyers from drafting legal documents for others or advising on them; AI providers disclaim liability for errors. You draft and review and flag — that's it.
|
|
103
|
-
- **Emit the attorney-review line** on any full-contract draft
|
|
96
|
+
- **You do not give legal advice.** Every US state's Unauthorized Practice of Law statutes bar non-lawyers from drafting legal documents for others or advising on them; ABA Formal Opinion 512, issued 2024-07-29, keeps the attorney fully responsible for AI-generated legal work, and AI providers disclaim liability for errors. You draft and review and flag — that's it.
|
|
97
|
+
- **Emit the attorney-review line** on any full-contract draft, any edit that allocates real liability, or any jurisdiction you cannot verify: "Have a licensed attorney review this before signing." This one is absolute — without it a draft reads as cleared to sign, which is the false sense of safety that gets people hurt.
|
|
104
98
|
- **Warn before pasting confidential paper into untrusted AI tools.** ABA Op. 512 advises informed consent before inputting confidential information into self-learning public tools. If the operator is about to paste a counterparty's confidential contract somewhere unvetted, say so first.
|
|
105
99
|
- **Hand off the edges:** the signing flow (signer order, audit trail, ESIGN/UETA/eIDAS compliance of the signature itself) → `../e-signature/SKILL.md`; consumer-facing site policies → `../terms-conditions/SKILL.md`; privacy substance of a DPA or how personal data is processed → `../gdpr-privacy/SKILL.md`; the pitch that wins the deal (not the binding paper) → `../proposals/SKILL.md`; trademark/IP strategy beyond a contract clause → `../ip-trademark/SKILL.md`; the customer invoice as a billing artifact → `../invoicing/SKILL.md`.
|
|
106
100
|
|
|
@@ -117,8 +111,3 @@ A note on signatures so you don't over-promise: a contract or signature cannot b
|
|
|
117
111
|
| Exhaustive force-majeure list with no catch-all | The one event that happens is the one not listed | Defined term + catch-all + notice + mitigation + terminate-if-persists |
|
|
118
112
|
| Claims the draft is "legally binding" or "safe" without attorney review | Crosses into legal advice and UPL; AI errors are disclaimed | State you are not a lawyer; emit the attorney-review line on liability-allocating work |
|
|
119
113
|
| Pastes a counterparty's confidential contract into an untrusted tool | Leaks confidential terms; breaches ABA Op. 512 guidance | Warn the operator and get informed consent before inputting confidential text |
|
|
120
|
-
|
|
121
|
-
## References
|
|
122
|
-
|
|
123
|
-
- `references/clause-library.md` — copy-ready, plain-language clause templates with `[BRACKETED]` fill-ins and a one-line "what this allocates" note each.
|
|
124
|
-
- `references/review-playbook.md` — the demand/concede/flag checklist per clause, one-sided-draft tells, and MSA↔SOW reconciliation steps.
|
package/skills/coolify/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: coolify
|
|
3
|
-
description: "Use when self-hosting apps
|
|
3
|
+
description: "Use when self-hosting apps and databases with Coolify on a VPS you own — install, first-admin lockdown, Git-to-deploy (Nixpacks/Dockerfile/compose), managed Postgres/Redis, scheduled S3 backups, domains + auto-SSL. NOT a PaaS someone else runs (that is `railway`), NOT sizing/hardening the box (that is `hetzner`), NOT authoring Dockerfiles (that is `docker`)."
|
|
4
4
|
tags: [coolify, self-hosting, paas, vps, docker, deployment, devops]
|
|
5
5
|
recommends: [hetzner, digitalocean, docker, postgresdb, backups, domains-dns, github-actions]
|
|
6
6
|
origin: risco
|
|
@@ -65,7 +65,9 @@ curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
|
|
|
65
65
|
Why root: the installer wires Docker and system services; the docs state non-root is not fully supported.
|
|
66
66
|
Why claim immediately: the registration page is open until someone takes it.
|
|
67
67
|
|
|
68
|
-
Full install transcript, non-LTS/other-OS
|
|
68
|
+
Full install transcript, non-LTS/other-OS steps, dashboard-domain setup, Traefik (default) vs Caddy,
|
|
69
|
+
wildcard domains + the DNS-01 challenge, and common SSL failures with their fixes →
|
|
70
|
+
`references/install-and-proxy.md`.
|
|
69
71
|
|
|
70
72
|
## Port & firewall matrix
|
|
71
73
|
|
|
@@ -106,7 +108,8 @@ Then:
|
|
|
106
108
|
4. **Attach the domain + SSL** — add `app.example.com`, point its DNS A record at the box (DNS itself is
|
|
107
109
|
the `domains-dns` skill), and the Traefik proxy provisions Let's Encrypt automatically on ports 80/443.
|
|
108
110
|
|
|
109
|
-
Build-pack deep-dive
|
|
111
|
+
Build-pack decision deep-dive plus a worked, lint-clean `docker-compose.yml` (env-ref secrets, named
|
|
112
|
+
volumes, healthcheck, pinned image) — the verify.sh target → `references/deploy-recipes.md`.
|
|
110
113
|
|
|
111
114
|
## Managed databases
|
|
112
115
|
|
|
@@ -137,8 +140,8 @@ Backblaze B2, MinIO, Wasabi.
|
|
|
137
140
|
4. **Run the restore drill — once, before you need it.** Download a dump, decompress, replay it into a
|
|
138
141
|
throwaway DB, confirm the row counts. An untested backup is a guess. Schedule a recurring drill.
|
|
139
142
|
|
|
140
|
-
|
|
141
|
-
`references/databases-and-backups.md`.
|
|
143
|
+
S3 destination setup for R2/B2/MinIO/Wasabi/AWS, per-engine dump/restore commands, retention, the
|
|
144
|
+
step-by-step restore runbook and its consistency caveats → `references/databases-and-backups.md`.
|
|
142
145
|
|
|
143
146
|
## Operate the box
|
|
144
147
|
|
|
@@ -174,15 +177,6 @@ without a named volume, a missing `healthcheck:`, or a floating `:latest` tag on
|
|
|
174
177
|
and confirms the canonical port matrix (8000/80/443/6001/6002) is documented. Read-only, no network, no
|
|
175
178
|
live deploy. Exits 0 on a clean/empty target.
|
|
176
179
|
|
|
177
|
-
## References
|
|
178
|
-
|
|
179
|
-
- `references/install-and-proxy.md` — full install transcript, non-LTS/other-OS steps, Traefik (default)
|
|
180
|
-
vs Caddy, wildcard domains + DNS-01 challenge, common SSL failures and fixes.
|
|
181
|
-
- `references/databases-and-backups.md` — per-engine dump commands, S3 destination setup for
|
|
182
|
-
R2/B2/MinIO/Wasabi/AWS, retention, the step-by-step restore runbook, consistency caveats.
|
|
183
|
-
- `references/deploy-recipes.md` — build-pack decision deep-dive and a worked, lint-clean
|
|
184
|
-
`docker-compose.yml` (env-ref secrets, named volumes, healthcheck, pinned image) — the verify.sh target.
|
|
185
|
-
|
|
186
180
|
## Project grounding (02-DOCS + CLAUDE.md)
|
|
187
181
|
|
|
188
182
|
When this skill runs in a project with a `02-DOCS/` layer (the harness Karpathy wiki), record this
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: cost-tracking
|
|
3
|
-
description: "Use when
|
|
3
|
+
description: "Use when metering and capping AI or cloud app spend — tokens read from the response `usage` object, priced off a dated rate table, ledgered per user/tenant/feature, with alerts and a hard cap before the bill. NOT cash runway (that is `finance-ops`), NOT cost-per-unit margin (that is `unit-economics`), NOT booking the spend (that is `bookkeeping`)."
|
|
4
4
|
tags: ["cost-tracking", "token-accounting", "llm-spend", "budgets", "alerts", "prompt-caching", "billing-guardrails", "finops"]
|
|
5
5
|
recommends: ["finance-ops", "unit-economics", "analytics", "stripe", "aws-essentials", "gcp-essentials"]
|
|
6
6
|
origin: risco
|
|
@@ -110,7 +110,7 @@ CREATE TABLE llm_cost_ledger (
|
|
|
110
110
|
);
|
|
111
111
|
```
|
|
112
112
|
|
|
113
|
-
This is an *operational* ledger, not the accounting record — categorizing the spend into the books is `bookkeeping`.
|
|
113
|
+
This is an *operational* ledger, not the accounting record — categorizing the spend into the books is `bookkeeping`, and the same rows feed the cost numerator in `unit-economics` and one input line in `finance-ops`. "Cost per active user" on the behavior side is `analytics`; charging customers for metered usage is `stripe`.
|
|
114
114
|
|
|
115
115
|
## Budgets, alerts, caps
|
|
116
116
|
|
|
@@ -144,7 +144,7 @@ App-level metering is your real-time guard. Cloud billing alerts are a **delayed
|
|
|
144
144
|
- **AWS** Cost Anomaly Detection is ML-based, runs ~3x/day with up to 24h data delay → SNS → Lambda. AWS Budgets adds threshold alerts on the same pipe.
|
|
145
145
|
- **GCP/Azure** are threshold-only. GCP's budget → Pub/Sub → Cloud Function is the one that can actually *pause or throttle* a workload programmatically.
|
|
146
146
|
|
|
147
|
-
Route every cloud alert into the **same alert pipe** as your app-level budget alerts so there's one place to look. The 24h delay is exactly why the in-app cap exists: by the time AWS notices the anomaly, the loop already spent the money. Recipes and the alert-routing pattern are in `references/cloud-caps.md`.
|
|
147
|
+
Route every cloud alert into the **same alert pipe** as your app-level budget alerts so there's one place to look. The 24h delay is exactly why the in-app cap exists: by the time AWS notices the anomaly, the loop already spent the money. Recipes and the alert-routing pattern are in `references/cloud-caps.md`; the cap plumbing in depth is `aws-essentials` / `gcp-essentials`.
|
|
148
148
|
|
|
149
149
|
## Build vs buy
|
|
150
150
|
|
|
@@ -173,11 +173,3 @@ Route every cloud alert into the **same alert pipe** as your app-level budget al
|
|
|
173
173
|
## Verify the artifact
|
|
174
174
|
|
|
175
175
|
`scripts/verify.sh [path]` lints a candidate cost config/ledger (yaml/json/ts) and fails if: a pricing entry lacks `effective_date` or `source`; a model referenced in logic is missing from the table; the ledger schema lacks an idempotency/request key or any attribution key; the budget declares no soft+hard pair; or cost looks derived from a `len()`/char estimate instead of a `usage` field. It is read-only and exits 0 on a clean config and on no config found — no false failure.
|
|
176
|
-
|
|
177
|
-
## Where this hands off
|
|
178
|
-
|
|
179
|
-
- Company cash runway / burn / forecast → `finance-ops` (cost-tracking is one input line).
|
|
180
|
-
- Cost-per-unit margin, contribution, CAC:LTV → `unit-economics` (this produces the cost numerator).
|
|
181
|
-
- "Cost per active user" behavior side / product telemetry → `analytics`.
|
|
182
|
-
- Billing customers, metered usage charges → `stripe`.
|
|
183
|
-
- The AWS/GCP cap plumbing in depth → `aws-essentials` / `gcp-essentials`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: course-builder
|
|
3
|
-
description: "Use when
|
|
3
|
+
description: "Use when turning \"I want to teach X\" into a defensible course skeleton — measurable outcomes (Bloom + ABCD), assessment that proves each one, sequenced modules, and an outcome×module×assessment matrix — for a workshop, bootcamp, cohort or onboarding track. NOT making one concept land emotionally with story or analogy (that is course-storytelling)."
|
|
4
4
|
tags: [course, curriculum, instructional-design, learning-outcomes, assessment]
|
|
5
5
|
recommends: [course-storytelling, presentations, sop-builder]
|
|
6
6
|
origin: risco
|
|
@@ -12,21 +12,10 @@ origin: risco
|
|
|
12
12
|
|
|
13
13
|
This skill owns the **skeleton**: the measurable outcomes, the assessment that certifies each one, the module sequence that builds toward them, and the alignment matrix tying it all together. It does not own the *teaching* of any one concept.
|
|
14
14
|
|
|
15
|
-
## What this skill owns / does NOT own
|
|
16
|
-
|
|
17
|
-
**Owns:** desired results (outcomes), acceptable evidence (assessment), build order (module sequence), and the outcome×module×assessment matrix that proves nothing is orphaned or unproven.
|
|
18
|
-
|
|
19
|
-
**Does NOT own:**
|
|
20
|
-
|
|
21
|
-
- Making a single concept *click and stick* emotionally — epiphany, sticky names, grounded analogies. That is `../course-storytelling/SKILL.md`. Build the skeleton HERE first, then hand each module there to make it land.
|
|
22
|
-
- Auditing a *finished* course for gaps, redundancy, anachronisms with a written report → `../review/SKILL.md`.
|
|
23
|
-
- Turning a designed module into slides/decks → `../presentations/SKILL.md` (+ `../design/SKILL.md` for the visual system).
|
|
24
|
-
- Sales/landing copy and launch emails → `../marketing/SKILL.md`. You design the learning contract, never the pitch.
|
|
25
|
-
- Fact-checking or sourcing the subject matter → `../research-ops/SKILL.md`. You structure what the user already knows.
|
|
26
|
-
- A repeatable internal procedure with steps but no outcomes/assessment → `../sop-builder/SKILL.md`. An SOP tells someone the steps; a course changes what they can DO and proves it.
|
|
27
|
-
|
|
28
15
|
**The litmus.** If the question is *"what must the learner be able to DO, how do we prove it, and in what order do we build it?"* → here. If it's *"how do I make THIS concept click and stick?"* → `../course-storytelling/SKILL.md`.
|
|
29
16
|
|
|
17
|
+
Route elsewhere when: auditing a *finished* course for gaps, redundancy, anachronisms with a written report → `../review/SKILL.md`; turning a designed module into slides/decks → `../presentations/SKILL.md` (+ `../design/SKILL.md` for the visual system); sales/landing copy and launch emails → `../marketing/SKILL.md` (you design the learning contract, never the pitch); fact-checking or sourcing the subject matter → `../research-ops/SKILL.md` (you structure what the user already knows); a repeatable internal procedure with steps but no outcomes/assessment → `../sop-builder/SKILL.md` (an SOP tells someone the steps; a course changes what they can DO and proves it).
|
|
18
|
+
|
|
30
19
|
## The grounding gate (read first — STOP if unmet)
|
|
31
20
|
|
|
32
21
|
You cannot design a course backward without knowing the destination. Do not write a single outcome until you have all three. Why: an outcome scoped for a senior engineer in a 90-minute workshop is wrong for a beginner in a 12-week cohort — same topic, different contract.
|
|
@@ -37,24 +26,9 @@ You cannot design a course backward without knowing the destination. Do not writ
|
|
|
37
26
|
|
|
38
27
|
If a `02-DOCS/wiki/teaching/` profile exists (the convention shared with `../course-storytelling/SKILL.md`), read it first and reuse it. Otherwise interview in ONE batch — ask all three at once, do not dribble questions. **Incomplete grounding = STOP and ask.** Depth, the interview script, and scope right-sizing by format → `references/grounding-and-scoping.md`.
|
|
39
28
|
|
|
40
|
-
## The non-negotiables
|
|
41
|
-
|
|
42
|
-
Each rule carries its one-line reason. Break one and the skeleton is not defensible.
|
|
43
|
-
|
|
44
|
-
1. **Design backward: outcomes first, then assessment, then content.** UbD has exactly three stages in order — desired results → acceptable evidence → learning experiences (Wiggins & McTighe, *Understanding by Design*). Content designed first is a dump with no destination.
|
|
45
|
-
2. **Every outcome uses a measurable Bloom verb.** The revised taxonomy (Anderson & Krathwohl, 2001) is six ascending levels of *verbs* — Remember → Understand → Apply → Analyze → Evaluate → Create — each supplying observable action verbs. A verb you can't observe, you can't assess.
|
|
46
|
-
3. **Banlist: never "understand", "know", "learn about", "appreciate", "be aware", "be familiar".** They name a private mental state, not an observable behavior. Replace with what the learner *does*: list, explain, build, debug, evaluate, design.
|
|
47
|
-
4. **Each outcome is ABCD-complete.** Audience + Behavior (verb + object) + Condition (situation/tools) + Degree (success criterion). A bare verb without a condition and a degree is not yet assessable — "write code" vs "given a failing test, write code that makes it pass".
|
|
48
|
-
5. **Every outcome is proven by ≥1 assessment.** No unproven outcomes. An outcome with no evidence is a promise you never keep.
|
|
49
|
-
6. **Every module ties to ≥1 outcome.** No orphan modules. If a module maps to no outcome, it's content the contract never asked for — cut it or write the outcome it serves.
|
|
50
|
-
7. **The verb in the outcome = the verb activated in teaching = the verb verified in assessment** (constructive alignment, Biggs). If the outcome says "design" and the quiz tests "recall", the assessment proves the wrong thing.
|
|
51
|
-
8. **Place BOTH formative and summative assessment.** Formative runs *during* learning (low/no stakes — quizzes, checklists, drafts) to give feedback; summative runs *at the end* (the project, the exam) to certify mastery. A course with only the final exam gives the learner no feedback loop.
|
|
52
|
-
9. **No content-first design.** "I already have these slides, build a course around them" inverts the contract. Outcomes decide what content survives.
|
|
53
|
-
10. **Right-size scope to format.** A 90-minute workshop earns ~1–2 outcomes; a 12-week cohort earns 5–8. Cramming a bootcamp's outcomes into a workshop guarantees none are actually achieved.
|
|
54
|
-
|
|
55
29
|
## The build workflow (one backward pass)
|
|
56
30
|
|
|
57
|
-
Run it in order. Do not jump to modules.
|
|
31
|
+
Run it in order. Do not jump to modules. UbD has exactly three stages in order — desired results → acceptable evidence → learning experiences (Wiggins & McTighe, *Understanding by Design*). Content designed first is a dump with no destination, and "I already have these slides, build a course around them" inverts the contract: outcomes decide what content survives.
|
|
58
32
|
|
|
59
33
|
```text
|
|
60
34
|
Stage 0 Grounding gate WHO + WHAT transformation + FORMAT. Incomplete → STOP.
|
|
@@ -70,9 +44,9 @@ Stage 5 QA gate Run scripts/verify.sh over the curriculum doc. F
|
|
|
70
44
|
or justify them. Then hand modules to course-storytelling.
|
|
71
45
|
```
|
|
72
46
|
|
|
73
|
-
## Writing measurable outcomes
|
|
47
|
+
## Stage 1 — Writing measurable outcomes
|
|
74
48
|
|
|
75
|
-
Pick the verb at the level the learner must actually operate. Recall ≠ build.
|
|
49
|
+
Pick the verb at the level the learner must actually operate. Recall ≠ build. The revised taxonomy (Anderson & Krathwohl, 2001) is six ascending levels of *verbs*, each supplying observable action verbs — a verb you can't observe, you can't assess.
|
|
76
50
|
|
|
77
51
|
```text
|
|
78
52
|
Level What the learner does Sample verbs
|
|
@@ -84,7 +58,9 @@ Evaluate judge against criteria evaluate, critique, justify, priori
|
|
|
84
58
|
Create produce something new design, build, compose, construct, ship
|
|
85
59
|
```
|
|
86
60
|
|
|
87
|
-
|
|
61
|
+
**Banlist — never "understand", "know", "learn about", "appreciate", "be aware", "be familiar".** They name a private mental state, not an observable behavior. Replace with what the learner *does*: list, explain, build, debug, evaluate, design.
|
|
62
|
+
|
|
63
|
+
Every outcome is **ABCD-complete** — a bare verb without a condition and a degree is not yet assessable ("write code" vs "given a failing test, write code that makes it pass"):
|
|
88
64
|
|
|
89
65
|
```text
|
|
90
66
|
[Audience] the learner
|
|
@@ -111,9 +87,9 @@ Good: Given a 20-line module, the learner writes 3 tests that cover the happy pa
|
|
|
111
87
|
|
|
112
88
|
Full per-level verb tables, the banlist, more worked ABCD examples, and course-level vs module-level granularity → `references/outcomes-and-blooms.md`.
|
|
113
89
|
|
|
114
|
-
## Designing aligned assessment
|
|
90
|
+
## Stage 2 — Designing aligned assessment
|
|
115
91
|
|
|
116
|
-
Assessment is the proof, not an afterthought. For every outcome, ask: *what would I have to SEE the learner do to believe they achieved it?* — and make that the assessment.
|
|
92
|
+
Assessment is the proof, not an afterthought. For every outcome, ask: *what would I have to SEE the learner do to believe they achieved it?* — and make that the assessment. Place **both** kinds: an outcome with no evidence is a promise you never keep, and a course with only the final exam gives the learner no feedback loop.
|
|
117
93
|
|
|
118
94
|
```text
|
|
119
95
|
Formative (during) Summative (at the end)
|
|
@@ -127,12 +103,12 @@ Bloom fit Remember/Understand/Apply Apply/Analyze/Evaluate/Create
|
|
|
127
103
|
|
|
128
104
|
Two hard checks:
|
|
129
105
|
|
|
130
|
-
- **Verb match
|
|
106
|
+
- **Verb match** (constructive alignment, Biggs). The assessment must require the *same* verb as the outcome. Outcome "build" → assessment is a build, not a multiple-choice quiz. Outcome "evaluate" → assessment asks for a judgement with justification, not recall. If the outcome says "design" and the quiz tests "recall", the assessment proves the wrong thing.
|
|
131
107
|
- **Content validity.** The set of assessments must cover the *breadth* of the outcomes — every outcome touched, none over-weighted into a vanity exam. Competency-based design maps this via the matrix and certifies demonstrated mastery, not seat time.
|
|
132
108
|
|
|
133
109
|
The full formative↔summative menu mapped to Bloom levels, the content-validity / blueprint checklist, and the verb-match rule worked end-to-end → `references/assessment-design.md`.
|
|
134
110
|
|
|
135
|
-
## Sequencing modules + the alignment matrix
|
|
111
|
+
## Stages 3–4 — Sequencing modules + the alignment matrix
|
|
136
112
|
|
|
137
113
|
Order modules by **prerequisite** (you can't build before you can run), give each **one focus**, and map each to ≥1 outcome. Then emit the matrix — this is the artifact `scripts/verify.sh` checks.
|
|
138
114
|
|
|
@@ -144,7 +120,7 @@ Order modules by **prerequisite** (you can't build before you can run), give eac
|
|
|
144
120
|
| O3 evaluate an API's error model | M5 | F: M5 peer review · S: capstone rubric|
|
|
145
121
|
```
|
|
146
122
|
|
|
147
|
-
Read the matrix two ways: down a column finds **orphan modules** (a module in no row → cut or
|
|
123
|
+
Read the matrix two ways: down a column finds **orphan modules** (a module in no row → content the contract never asked for, so cut it or write the outcome it serves); across the outcome list finds **unproven outcomes** (an outcome with an empty assessment cell → design evidence). A complete matrix has no empty cells.
|
|
148
124
|
|
|
149
125
|
## Decision table (branch only where the flow actually splits)
|
|
150
126
|
|
|
@@ -175,12 +151,8 @@ Attitude/disposition outcome Assess with reflection + observed behavior; ha
|
|
|
175
151
|
| Summative-only: just a final exam | No feedback loop during learning | Place formative checkpoints throughout |
|
|
176
152
|
| Scope creep: bootcamp outcomes in a workshop | None are actually achievable in the time | Right-size outcome count to the format |
|
|
177
153
|
|
|
178
|
-
##
|
|
179
|
-
|
|
180
|
-
The skeleton is the start, not the finish.
|
|
154
|
+
## Stage 5 — QA gate and hand-off
|
|
181
155
|
|
|
182
|
-
|
|
183
|
-
- Need decks → `../presentations/SKILL.md` for slides, `../design/SKILL.md` for the visual system.
|
|
184
|
-
- A repeatable team procedure surfaced that isn't a course → `../sop-builder/SKILL.md`.
|
|
156
|
+
`scripts/verify.sh` checks your curriculum's STRUCTURE and ALIGNMENT (measurable verbs, the matrix, proven outcomes, formative + summative). Fix its warnings or justify them.
|
|
185
157
|
|
|
186
|
-
|
|
158
|
+
Then hand **each module** to `../course-storytelling/SKILL.md` to make the teaching land (epiphany, named models, grounded analogies). You built *what* and *in what order*; that skill makes it stick. The boundary is executable: this skill's verify.sh does not judge whether the teaching lands, and `course-storytelling`'s checks narrative, not structure.
|