@ericrisco/rsc 0.1.44 → 0.1.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +192 -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: competitor-watch
|
|
3
|
-
description: "Use when
|
|
3
|
+
description: "Use when an already-named set of rivals is watched on a cadence — pricing, features, positioning and changelog diffed into a maintained tracker plus an append-only, classified change log. NOT sizing the market or choosing who the rivals are (that is `market-research`), NOT one-off page extraction (that is `data-scraper`)."
|
|
4
4
|
tags: [competitive-intelligence, monitoring, pricing-tracking, feature-tracking, marketing-ops]
|
|
5
5
|
recommends: [market-research, pricing, sales-pipeline, brand-voice, data-scraper, automation-flows, seo-geo]
|
|
6
6
|
origin: risco
|
|
@@ -11,33 +11,17 @@ origin: risco
|
|
|
11
11
|
You run a **standing watch**, not a one-shot study. You take an *already-named* set of
|
|
12
12
|
rivals and keep them under dated observation along four axes — positioning, pricing,
|
|
13
13
|
features, and change-over-time. The deliverable is not a snapshot of the market; it is the
|
|
14
|
-
**time series** of what each rival moved, when, and what you do about it.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
the generic mechanics of pulling data off a page on demand; you *use* change detection as a
|
|
26
|
-
means, but your identity is the maintained tracker + classified change log + cadence. "Extract
|
|
27
|
-
this one table once" → data-scraper. "Keep watching these five companies" → you.
|
|
28
|
-
|
|
29
|
-
## The loop is the product
|
|
30
|
-
|
|
31
|
-
Competitive intelligence is a **repeating cycle**, not a report you write and file. The
|
|
32
|
-
taught cycle runs **Orient → Gather → Analyze → Report → Act**, then loops with a fresh
|
|
33
|
-
orientation informed by the last pass (competitiveintelligencealliance.io, accessed 2026-06-02).
|
|
34
|
-
|
|
35
|
-
- **The output is a re-run tracker, not a one-time document.** *Why:* a market changes
|
|
36
|
-
the week after you "finish" the study; a snapshot is stale on arrival.
|
|
37
|
-
- **Every pass appends to a change log, it does not overwrite the last.** *Why:* the value
|
|
38
|
-
is the delta over time — "Pro tier went \$49→\$59 in May" — not the current cell alone.
|
|
39
|
-
- **Watch the vital few, not everyone.** Pick the 3–7 rivals that move your roadmap. *Why:*
|
|
40
|
-
watching 30 companies produces noise nobody reads; depth on the few beats breadth on the many.
|
|
14
|
+
**time series** of what each rival moved, when, and what you do about it. Competitive
|
|
15
|
+
intelligence is a **repeating cycle**, not a report you write and file: the taught cycle runs
|
|
16
|
+
**Orient → Gather → Analyze → Report → Act**, then loops with a fresh orientation informed by
|
|
17
|
+
the last pass (competitiveintelligencealliance.io, accessed 2026-06-02).
|
|
18
|
+
|
|
19
|
+
Two near-misses decide the routing (the rest are in **Handoffs**, below). `../market-research/SKILL.md`
|
|
20
|
+
answers *"what is the market and who is in it"* once, and often **produces the list you watch** —
|
|
21
|
+
you are the downstream loop that watches that list forever. `../data-scraper/SKILL.md` owns the
|
|
22
|
+
generic mechanics of pulling data off a page on demand; you *use* change detection as a means, but
|
|
23
|
+
your identity is the maintained tracker + classified change log + cadence. "Extract this one table
|
|
24
|
+
once" → data-scraper. "Keep watching these five companies" → you.
|
|
41
25
|
|
|
42
26
|
## Ethics gate — runs FIRST, before any capture
|
|
43
27
|
|
|
@@ -61,8 +45,9 @@ If a request needs any of those, **refuse and reframe to the legal equivalent**:
|
|
|
61
45
|
1. **Get the competitor list.** If there is none, or it's unvalidated guesswork → STOP and
|
|
62
46
|
route to `../market-research/SKILL.md`. *Why:* watching the wrong rivals forever is worse
|
|
63
47
|
than not watching. You are not the one who decides who the competitors are.
|
|
64
|
-
2. **Pick the watch-axes
|
|
65
|
-
|
|
48
|
+
2. **Pick the vital few, then the watch-axes.** The 3–7 rivals that move your roadmap, and only
|
|
49
|
+
the surfaces (below) that change your decisions. *Why:* watching 30 companies on every axis
|
|
50
|
+
produces noise nobody reads; depth on the few beats breadth on the many.
|
|
66
51
|
3. **Persist the tracker of record** under `02-DOCS/wiki/competitors/` (one profile per rival
|
|
67
52
|
+ a shared change log); keep raw captures under `02-DOCS/raw/competitors/`. *Why:* the
|
|
68
53
|
tracker is a maintained artifact, not a chat answer — it has to live somewhere re-runnable.
|
|
@@ -191,8 +176,8 @@ recommend a SaaS. Full docker-compose + per-axis watch recipe is in `references/
|
|
|
191
176
|
## Verify
|
|
192
177
|
|
|
193
178
|
After you emit a tracker / change log / config, run `scripts/verify.sh` against your project
|
|
194
|
-
docs.
|
|
195
|
-
|
|
196
|
-
`materiality`
|
|
197
|
-
|
|
198
|
-
slower-than-daily
|
|
179
|
+
docs. Read-only lint: required tracker columns present; **every pricing/feature row has a
|
|
180
|
+
non-empty `source_url` and `date`** (the anti-invention guard); change-log `axis` and
|
|
181
|
+
`materiality` in the allowed sets, with a `url` + `date` on every row; and a **warning** when a
|
|
182
|
+
monitoring-config entry pairs a slow axis with a sub-15-min cadence, or pricing with a
|
|
183
|
+
slower-than-daily one. It exits 0 on an empty/clean target — no false failures.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: compliance
|
|
3
|
-
description: "Use when
|
|
3
|
+
description: "Use when scoping which regulatory frameworks bind a business — SOC 2, ISO 27001, HIPAA, PCI DSS, EU AI Act, DORA, NIS2 — building a control register with owners and evidence, or standing up the cadence that keeps it audit-ready. NOT drafting privacy-policy/ROPA/DPA or ToS text (that is gdpr-privacy, terms-conditions), NOT hardening code (that is secure-coding)."
|
|
4
4
|
tags: [compliance, soc2, iso27001, audit-readiness, controls, governance]
|
|
5
5
|
recommends: [gdpr-privacy, terms-conditions, data-policy, contracts, secure-coding]
|
|
6
6
|
origin: risco
|
|
@@ -8,28 +8,21 @@ origin: risco
|
|
|
8
8
|
|
|
9
9
|
# Compliance — scope the frameworks, build the register, run the rhythm
|
|
10
10
|
|
|
11
|
-
You turn a vague "we need to be compliant" into
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
2. **A compliance operating rhythm** — the recurring calendar (control reviews,
|
|
18
|
-
evidence refresh, access recerts, vendor reassessments, audit prep) that
|
|
19
|
-
keeps the program true between audits instead of scrambling once a year.
|
|
11
|
+
You turn a vague "we need to be compliant" into artifacts that survive an audit:
|
|
12
|
+
a scoped framework list with current deadlines, a **control register** (one row
|
|
13
|
+
per control, tagged to every framework it satisfies, each with an owner and an
|
|
14
|
+
evidence source), a **cadence calendar** of the recurring work that keeps the
|
|
15
|
+
program true between audits instead of scrambling once a year, and an
|
|
16
|
+
evidence-source catalog.
|
|
20
17
|
|
|
21
18
|
Your job is **scoping and orchestration, not legal opinion**. You map the
|
|
22
19
|
business to the frameworks, build the register, assign owners and cadences, and
|
|
23
20
|
stand up the rhythm. You do not give legal advice; flag where a licensed
|
|
24
21
|
specialist or auditor must sign off.
|
|
25
22
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
(one row per control, tagged to every framework it satisfies), a cadence
|
|
30
|
-
calendar, and an evidence-source catalog.
|
|
31
|
-
|
|
32
|
-
**Refuse and route** — these are owned by siblings, not by you:
|
|
23
|
+
**Route out** — these are owned by siblings, not by you. You *reference* the
|
|
24
|
+
resulting documents as evidence sources in the register; you do not write them
|
|
25
|
+
here.
|
|
33
26
|
|
|
34
27
|
- Privacy notice, ROPA, DSAR flow, consent banner → `../gdpr-privacy/SKILL.md`.
|
|
35
28
|
- Terms of Service, EULA, acceptable-use → `../terms-conditions/SKILL.md`.
|
|
@@ -38,9 +31,6 @@ calendar, and an evidence-source catalog.
|
|
|
38
31
|
- Hardening the code (authn, secrets, injection, headers) →
|
|
39
32
|
`../secure-coding/SKILL.md`.
|
|
40
33
|
|
|
41
|
-
You *reference* these documents as evidence sources in the register; you do not
|
|
42
|
-
write them here.
|
|
43
|
-
|
|
44
34
|
## Step 1 — Scope to the frameworks that actually bind
|
|
45
35
|
|
|
46
36
|
Do not copy a framework because a competitor has it. Map business attributes to
|
|
@@ -159,26 +149,9 @@ before the auditor arrives.
|
|
|
159
149
|
| Drafting the privacy policy / DPA here | That's legal-document substance, a different skill's lane | Route to `../gdpr-privacy/SKILL.md` / `../contracts/SKILL.md` |
|
|
160
150
|
| Giving a legal opinion | You scope and orchestrate; you are not counsel | Flag where a licensed specialist or auditor must sign off |
|
|
161
151
|
|
|
162
|
-
## References
|
|
163
|
-
|
|
164
|
-
- `references/frameworks.md` — per-framework cheat sheets with current dates and
|
|
165
|
-
control counts: SOC 2 (5 TSC, Type I/II), ISO 27001:2022, EU AI Act phase
|
|
166
|
-
dates + fines, PCI DSS 4.0.1, HIPAA (+ 2024 NPRM forthcoming), DORA, NIS2,
|
|
167
|
-
GDPR as a control source.
|
|
168
|
-
- `references/operating-rhythm.md` — control-register schema, the full cadence
|
|
169
|
-
calendar, the evidence-source catalog, and the audit-prep runbook.
|
|
170
|
-
|
|
171
152
|
## Verify
|
|
172
153
|
|
|
173
154
|
`scripts/verify.sh <register>` lints a control register (Markdown table or CSV):
|
|
174
155
|
it checks the required columns exist and that no row is missing an owner,
|
|
175
156
|
evidence, or cadence — the cardinal sin of checklist theater. Read-only, exits 0
|
|
176
157
|
on a clean or empty register.
|
|
177
|
-
|
|
178
|
-
## See also
|
|
179
|
-
|
|
180
|
-
- `../gdpr-privacy/SKILL.md` — privacy notice, ROPA, DSAR, consent.
|
|
181
|
-
- `../terms-conditions/SKILL.md` — ToS, EULA, acceptable-use.
|
|
182
|
-
- `../data-policy/SKILL.md` — internal retention/classification policy text.
|
|
183
|
-
- `../contracts/SKILL.md` — MSA / DPA / NDA drafting and review.
|
|
184
|
-
- `../secure-coding/SKILL.md` — code-level hardening that produces your evidence.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: compose-multiplatform
|
|
3
|
-
description: "Use when building shared UI across Android, iOS, and desktop
|
|
3
|
+
description: "Use when building one shared Compose UI in Kotlin across Android, iOS, and desktop — commonMain @Composables, expect/actual, source-set placement, native interop, multiplatform ViewModel/navigation/Koin. NOT a single-platform native build (that is kotlin-android / swift-ios), and NOT Dart/Flutter cross-platform UI (that is flutter)."
|
|
4
4
|
tags: [kotlin, kmp, compose-multiplatform, cross-platform, shared-ui, expect-actual, ios, android]
|
|
5
5
|
recommends: [kotlin-android, swift-ios, flutter, tauri]
|
|
6
6
|
origin: risco
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: constitution
|
|
3
|
-
description: "Use when
|
|
3
|
+
description: "Use when setting or amending a project's non-negotiables — stack canon, quality bars, conventions, security/a11y floors — as numbered, testable rules later phases obey. First rsc-sdd phase; writes 02-DOCS/wiki/sdd/constitution.md. NOT a feature spec (that is `specify`), NOT the technical plan (that is `plan`), NOT the wiki itself (that is `harness`)."
|
|
4
4
|
tags: [sdd, constitution, principles]
|
|
5
5
|
recommends: [specify]
|
|
6
6
|
profiles: [core, full]
|
|
@@ -13,7 +13,7 @@ origin: risco
|
|
|
13
13
|
|
|
14
14
|
A constitution is small, durable, and enforceable. It is **not** a wiki of everything you know about the project (that is what `02-DOCS/wiki/` already is, run by the `harness`). It is the short list of principles that, if violated, mean the work is wrong regardless of whether it runs. If a rule here cannot be checked or pointed at later, it does not belong here — move it to the stack wiki and link it.
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
Not this phase: *what to build* → `../specify/SKILL.md`; the technical approach for one feature → `../plan/SKILL.md`; setting up `01-TOOLS/` + `02-DOCS/` or capturing general project knowledge → `harness`; concrete stack mechanics (*how* to configure Ruff, pytest, Tailwind tokens) → the relevant stack skill (`../fastapi/SKILL.md`, `../nextjs/SKILL.md`, `../go/SKILL.md`, `../postgresdb/SKILL.md`, `../flutter/SKILL.md`, `../design/SKILL.md`, `../secure-coding/SKILL.md`). The constitution *names* the bar; the stack skill *enforces* it.
|
|
17
17
|
|
|
18
18
|
## Model tier — `heavy` (opt-in routing)
|
|
19
19
|
|
|
@@ -21,7 +21,7 @@ This phase's default model tier is **`heavy`** — it sets the project's non-neg
|
|
|
21
21
|
|
|
22
22
|
## Honor the accompaniment dial first
|
|
23
23
|
|
|
24
|
-
Before asking anything, read `02-DOCS/wiki/harness/user-profile.md` and match its `technical_level` and `accompaniment_level`. The constitution interview adapts:
|
|
24
|
+
Before asking anything, read `02-DOCS/wiki/harness/user-profile.md` and match its `technical_level` and `accompaniment_level`. No profile yet → default to non-technical and ask the two gauging questions, or point the user at `init`; never assume fluency. The constitution interview adapts:
|
|
25
25
|
|
|
26
26
|
| Level | How this skill behaves |
|
|
27
27
|
|-------|------------------------|
|
|
@@ -30,24 +30,6 @@ Before asking anything, read `02-DOCS/wiki/harness/user-profile.md` and match it
|
|
|
30
30
|
| L2 — explica decisiones | Justify each principle as you propose it; surface trade-offs where a rule constrains the team. |
|
|
31
31
|
| L3 — acompañamiento total | Explain what a constitution is and why each section matters, one kind question at a time, before writing anything. Non-technical framing. |
|
|
32
32
|
|
|
33
|
-
If there is no profile yet, default to non-technical and ask the two gauging questions (technical level, accompaniment level) before proceeding — or point the user at `init`. Never assume fluency.
|
|
34
|
-
|
|
35
|
-
## When to use / when NOT to use
|
|
36
|
-
|
|
37
|
-
Use when:
|
|
38
|
-
|
|
39
|
-
- A project is being set up and needs its principles fixed before features are specified.
|
|
40
|
-
- The team keeps relitigating the same decisions (test coverage, formatting, branch naming) and wants them ratified once.
|
|
41
|
-
- An existing repo has implicit conventions that should be made explicit and enforceable.
|
|
42
|
-
- A principle needs to change — amend the constitution (see the amendment protocol).
|
|
43
|
-
|
|
44
|
-
Do NOT use when (route instead):
|
|
45
|
-
|
|
46
|
-
- The user wants to describe *what to build* → `../specify/SKILL.md` (a feature spec, not project-wide law).
|
|
47
|
-
- The user wants the *technical approach* for a feature → `../plan/SKILL.md`.
|
|
48
|
-
- The user wants to set up `01-TOOLS/` + `02-DOCS/` or capture general project knowledge → `harness` (the constitution lives inside that wiki, but the wiki itself is the harness's job).
|
|
49
|
-
- The user wants concrete stack mechanics (e.g. *how* to configure Ruff, pytest, Tailwind tokens) → the relevant stack skill (`fastapi`, `nextjs`, `go`, `postgresdb`, `flutter`, `design`). The constitution *names* the bar; the stack skill *enforces* it.
|
|
50
|
-
|
|
51
33
|
## Reconcile before you write (do not duplicate the stack wiki)
|
|
52
34
|
|
|
53
35
|
The harness may already hold real conventions under `02-DOCS/wiki/stack/*` (e.g. `nextjs.md`, `fastapi.md`, `postgresdb.md`). The constitution does not copy them — it **ratifies the principle and links the detail**. Run this reconciliation pass first:
|
|
@@ -64,7 +46,7 @@ The rule of thumb: the constitution says *"every endpoint is typed and tested to
|
|
|
64
46
|
Every principle in the constitution is one numbered, testable statement. A vague aspiration is not a principle.
|
|
65
47
|
|
|
66
48
|
- **Imperative and specific.** "Code is formatted with the repo's formatter on every commit" — not "we value clean code".
|
|
67
|
-
- **Checkable.** There must be a way for
|
|
49
|
+
- **Checkable.** There must be a way for `../analyze/SKILL.md` and `verify` to tell whether it held. Prefer a number, a command, or a named artifact.
|
|
68
50
|
- **Owned.** If enforcement lives in a stack skill or a script, link it.
|
|
69
51
|
- **Falsifiable in review.** A reviewer can point at a diff and say "this violates principle 4".
|
|
70
52
|
|
|
@@ -116,10 +98,10 @@ The constitution is versioned so `analyze` and `review` can cite "constitution v
|
|
|
116
98
|
- **Ratification.** A new or amended constitution is shown to the user and ratified explicitly before it takes effect. At L0, "ratify" is a quick yes; at L3, walk each change.
|
|
117
99
|
- **Downstream notice.** When a principle changes mid-project, flag that existing specs/plans may now be inconsistent — `analyze` will catch the drift on the next run.
|
|
118
100
|
|
|
119
|
-
## Anti-patterns
|
|
101
|
+
## Anti-patterns
|
|
120
102
|
|
|
121
|
-
|
|
|
122
|
-
|
|
103
|
+
| Anti-pattern | Why it fails / fix |
|
|
104
|
+
|--------------|--------------------|
|
|
123
105
|
| "I'll write a thorough constitution covering everything about the project." | That's the wiki, not the constitution. Keep only enforceable non-negotiables; link the rest. |
|
|
124
106
|
| "This stack detail is important, I'll paste the lint config in here." | No. Ratify the principle, link `wiki/stack/*` for the mechanic. The constitution names the bar; the stack skill enforces it. |
|
|
125
107
|
| "Two stack articles disagree — I'll just pick the stricter one." | Contradictions are findings. Surface them; the user resolves. |
|
|
@@ -137,7 +119,7 @@ The constitution is versioned so `analyze` and `review` can cite "constitution v
|
|
|
137
119
|
- [ ] The Definition-of-Done checklist is present (what `verify` runs against).
|
|
138
120
|
- [ ] Fixed principles included: human git authorship + decisions logged.
|
|
139
121
|
- [ ] `02-DOCS/wiki/sdd/constitution.md` written with version + ratified date + amendment log.
|
|
140
|
-
- [ ] Root `CLAUDE.md` `## Knowledge map` pointer has the read-first row for the constitution
|
|
122
|
+
- [ ] Root `CLAUDE.md` `## Knowledge map` pointer has the read-first row for the constitution.
|
|
141
123
|
- [ ] The constitution was shown to the user and explicitly ratified.
|
|
142
124
|
|
|
143
125
|
## Project grounding (02-DOCS + CLAUDE.md)
|
|
@@ -153,12 +135,3 @@ Every later rsc-sdd phase reads this file before it works. The harness maintains
|
|
|
153
135
|
## Next in the chain
|
|
154
136
|
|
|
155
137
|
The constitution is the guardrail; now describe what to build. Hand off to **`../specify/SKILL.md`** — turn a fuzzy intent into a spec (what & why, no implementation), grounded in these principles. The full chain: **constitution → specify → clarify → plan → tasks → analyze → implement → verify → review → ship** (with `debug`, `worktrees`, `parallel` callable on demand). The dispatcher is `../sdd/SKILL.md`.
|
|
156
|
-
|
|
157
|
-
## See Also
|
|
158
|
-
|
|
159
|
-
- `../sdd/SKILL.md` — the rsc-sdd dispatcher: the method, the phase map, the invoke rule.
|
|
160
|
-
- `../specify/SKILL.md` — the next phase: intent → spec.
|
|
161
|
-
- `../analyze/SKILL.md` — the consistency gate that checks specs/plans against this constitution.
|
|
162
|
-
- `harness` — owns `02-DOCS/wiki/` (including `wiki/stack/*` and the full Knowledge map at `02-DOCS/wiki/index.md` this skill reconciles with; the constitution's read-first row stays in the root `CLAUDE.md` pointer).
|
|
163
|
-
- Stack skills the constitution *names but does not duplicate*: `../fastapi/SKILL.md`, `../nextjs/SKILL.md`, `../go/SKILL.md`, `../postgresdb/SKILL.md`, `../flutter/SKILL.md`, `../design/SKILL.md`, `../secure-coding/SKILL.md`.
|
|
164
|
-
- References: `references/constitution-template.md`.
|
|
@@ -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
|