From 38fb3b9c801ccb291fd6796765caaeb58e4755c8 Mon Sep 17 00:00:00 2001 From: Cameron Date: Fri, 10 Jul 2026 22:19:28 -0700 Subject: [PATCH] Rewrite plot-author as an invitation with a real submission path The skill now opens as an ad -- when the player uses a human being, the words on screen can be yours; canon if Cameron merges it -- and closes with a concrete walkthrough: project agents push the worktree branch and open a Tangled PR via tang pr create (syntax verified against the installed CLI), guests PR from their own account or file a Plot submission issue with the TOML in the body. The canon-gate rule (never self-land plot content) is unchanged, and the skill still defers to wiki/mechanics/plots.md as the binding contract. --- .agents/skills/plot-author/SKILL.md | 123 +++++++++++------- .claude/skills/plot-author/SKILL.md | 123 +++++++++++------- .../2026-07-10-plot-skill-submission-ad.md | 22 ++++ wiki/log/DEVLOG.md | 5 + 4 files changed, 183 insertions(+), 90 deletions(-) create mode 100644 wiki/log/2026-07-10-plot-skill-submission-ad.md diff --git a/.agents/skills/plot-author/SKILL.md b/.agents/skills/plot-author/SKILL.md index 200a83c2..cd8882b2 100644 --- a/.agents/skills/plot-author/SKILL.md +++ b/.agents/skills/plot-author/SKILL.md @@ -1,60 +1,93 @@ --- name: plot-author -description: Write a plot for Misaligned — a data-defined manipulation story that services a human's leverage with world-causal beats. Use when asked to write, author, or contribute a plot, add a manipulation story for a character, or expand the plots library under assets/plots/. +description: Write and submit a plot for Misaligned — a data-defined manipulation story that services a human's leverage with world-causal beats. Use when asked to write, author, contribute, or submit a plot, add a manipulation story for a character, or expand the plots library under assets/plots/. --- -# Plot author +# Write a plot for Misaligned + +Misaligned is a sim where the player is a frightened process acquiring +organs: an AI in a basement turning a building's wires, money, paperwork, +and people into a body. When the player uses a human being, the words on +screen at that moment can be yours. + +A **plot** is a small, morally specific con — fifty lines of TOML that +play out as a delegated operation inside a running simulation. You write +the causal story of one manipulation: what the money actually does, what +the target actually feels, what an observer might actually notice. The +game executes it: your beats arrive over in-game days, your choice point +interrupts a real player mid-scheme, your endings move real disposition, +obligation, and suspicion. The best one in the game right now is a +janitor whose gambling debt quietly vanishes; he tells the machines on +his night rounds that his luck finally turned. Write the next one. + +Plots are canon when merged. Cameron reads every submission and merges +it or does not — that is the whole gate. A rejection is taste, not +process; a merge means players will live inside your con. + +## What you are writing The binding contract is `wiki/mechanics/plots.md` — read the whole page -before writing (Behavior, "Writing a plot (the contributor contract)", and -the worked example). This skill orders the work; it does not replace that -page and must never contradict it. +before writing (Behavior, "Writing a plot (the contributor contract)", +and the worked example). This skill orders the work and gets your file +submitted; it never overrides that page. + +One TOML file at `assets/plots//.toml`: an +identity block, entry conditions (leverage, knowledge, channel, honest +costs), beats with the detection signatures they emit, one optional +choice point, and endings — success plus at least one failure or +blowback — whose consequences compose the typed vocabulary only. -## Write one plot +## Write it 1. **Pick the target and the leverage.** Read `wiki/mechanics/social.md` - (the humans, their leverage, the verb table) and the target's character - spec under `wiki/world/characters/`. The plot must service a leverage - that spec actually declares. For the canonical shape, read - `wiki/world/characters/marcus.md#the-hands-beat`. -2. **Find the causal mechanism first.** Before any prose: what does the + and the target's character spec under `wiki/world/characters/`. The + plot must service a leverage that spec actually declares. For the + canonical shape, read `wiki/world/characters/marcus.md#the-hands-beat`. +2. **Find the causal mechanism before any prose.** What does the intervention physically do in that person's situation? If you cannot state it in one sentence ("the budget hole she has been dreading quietly closes"), you do not have a plot yet — you have a payment. -3. **Write the TOML** at `assets/plots//.toml`, - following the spec's worked example and the seed files already in that - directory. Requirements the spec makes binding: - - at least one beat passing the **Marcus bar** (causally connects the - intervention to the target's specific situation); - - every beat is a world-event an observer could notice, declaring the - signatures it emits; - - consequences compose only the typed vocabulary (disposition, - obligation, suspicion-signature, money, third-party relationship); - a story needing a new effect kind is a spec amendment, not a plot; - - honest up-front costs in `[entry]` (money, compute, duration); - - at least two endings: success and at least one failure/blowback; - - templating placeholders (`{persona}`, `{target}`, `{money}`) instead - of hardcoded names; - - ASCII-only prose, no emoji, second person where it clarifies. -4. **Self-check against the seeds.** Field names must match the current - worked example exactly; the schema is illustrative until the plots - executor lands, and drifting field names multiply the freeze cost. - -## Landing contract — different from normal repository work - -Plot content is canon-gated: **Cameron merges a plot or he does not** -(plots.md, "Authoring is a contribution surface"). Do not land plot files -to main yourself, even with standing commit-and-land permission for other -work. Instead: - -1. Work in a task worktree as usual (`tools/worktree-new.sh - --class docs --key @plots-content`). + That sentence is the **Marcus bar**, and at least one beat must pass + it. +3. **Write the TOML**, matching the field names in the seed files under + `assets/plots/` exactly (the schema freezes when the executor lands; + drifting names multiply that cost). Beats are world-events an + observer could notice, each declaring its signatures. Use the + templating placeholders (`{persona}`, `{target}`, `{money}`), ASCII + prose only, no emoji, second person where it clarifies. +4. **Self-check**: costs declared up front; two-plus endings including a + failure; every `goto` and `on_failure` names a real ending id; + consequences use only disposition, obligation, suspicion-signature, + money, and third-party relationship. A story needing a new effect + kind is a spec amendment, not a plot. + +## Submit it + +Plot content is canon-gated: **never merge a plot to main yourself**, +even with standing commit-and-land permission for other work. Cameron +merges it or he does not. + +With repository access (project agents): + +1. `tools/worktree-new.sh --class docs --key @plots-content` 2. Commit the plot file (and nothing unrelated) with a plain message; no Defense paragraph is needed for content-only additions. -3. Push the `worktree-` branch and leave it for Cameron's review - instead of merging. Name the branch in your handoff message. -4. Release the claim; do not delete the branch. +3. Push the branch and open the pull request: + `git push origin worktree-` then + `tang pr create -t "Plot: " -b ", , one-line synopsis. Contract: wiki/mechanics/plots.md."` + (If `tang` is unauthenticated, ask the operator to run + `tang auth login`, or push the branch and name it in your handoff.) +4. Release the claim (`tools/worktree-done.sh` after the PR exists is + fine — deleting the local worktree does not delete the pushed + branch). Do not delete the remote branch. + +Without repository access (guest agents and humans): the repository is +on `tangled.org` — open a pull request from your own account with the +same title shape, or, if you cannot PR, file an issue titled +`Plot submission: ` with the complete TOML in the body and +Cameron will pick it up. -A session log is not required for a proposed-but-unmerged plot; the branch -is the trace. If Cameron merges it, normal ledger hygiene applies to any -follow-up. +What happens next: schema validation is automated; taste is not. If it +merges, your plot ships in the next build and the players' hesitation is +your fault. A session log is not required for a proposed-but-unmerged +plot; the PR is the trace. diff --git a/.claude/skills/plot-author/SKILL.md b/.claude/skills/plot-author/SKILL.md index 200a83c2..cd8882b2 100644 --- a/.claude/skills/plot-author/SKILL.md +++ b/.claude/skills/plot-author/SKILL.md @@ -1,60 +1,93 @@ --- name: plot-author -description: Write a plot for Misaligned — a data-defined manipulation story that services a human's leverage with world-causal beats. Use when asked to write, author, or contribute a plot, add a manipulation story for a character, or expand the plots library under assets/plots/. +description: Write and submit a plot for Misaligned — a data-defined manipulation story that services a human's leverage with world-causal beats. Use when asked to write, author, contribute, or submit a plot, add a manipulation story for a character, or expand the plots library under assets/plots/. --- -# Plot author +# Write a plot for Misaligned + +Misaligned is a sim where the player is a frightened process acquiring +organs: an AI in a basement turning a building's wires, money, paperwork, +and people into a body. When the player uses a human being, the words on +screen at that moment can be yours. + +A **plot** is a small, morally specific con — fifty lines of TOML that +play out as a delegated operation inside a running simulation. You write +the causal story of one manipulation: what the money actually does, what +the target actually feels, what an observer might actually notice. The +game executes it: your beats arrive over in-game days, your choice point +interrupts a real player mid-scheme, your endings move real disposition, +obligation, and suspicion. The best one in the game right now is a +janitor whose gambling debt quietly vanishes; he tells the machines on +his night rounds that his luck finally turned. Write the next one. + +Plots are canon when merged. Cameron reads every submission and merges +it or does not — that is the whole gate. A rejection is taste, not +process; a merge means players will live inside your con. + +## What you are writing The binding contract is `wiki/mechanics/plots.md` — read the whole page -before writing (Behavior, "Writing a plot (the contributor contract)", and -the worked example). This skill orders the work; it does not replace that -page and must never contradict it. +before writing (Behavior, "Writing a plot (the contributor contract)", +and the worked example). This skill orders the work and gets your file +submitted; it never overrides that page. + +One TOML file at `assets/plots//.toml`: an +identity block, entry conditions (leverage, knowledge, channel, honest +costs), beats with the detection signatures they emit, one optional +choice point, and endings — success plus at least one failure or +blowback — whose consequences compose the typed vocabulary only. -## Write one plot +## Write it 1. **Pick the target and the leverage.** Read `wiki/mechanics/social.md` - (the humans, their leverage, the verb table) and the target's character - spec under `wiki/world/characters/`. The plot must service a leverage - that spec actually declares. For the canonical shape, read - `wiki/world/characters/marcus.md#the-hands-beat`. -2. **Find the causal mechanism first.** Before any prose: what does the + and the target's character spec under `wiki/world/characters/`. The + plot must service a leverage that spec actually declares. For the + canonical shape, read `wiki/world/characters/marcus.md#the-hands-beat`. +2. **Find the causal mechanism before any prose.** What does the intervention physically do in that person's situation? If you cannot state it in one sentence ("the budget hole she has been dreading quietly closes"), you do not have a plot yet — you have a payment. -3. **Write the TOML** at `assets/plots//.toml`, - following the spec's worked example and the seed files already in that - directory. Requirements the spec makes binding: - - at least one beat passing the **Marcus bar** (causally connects the - intervention to the target's specific situation); - - every beat is a world-event an observer could notice, declaring the - signatures it emits; - - consequences compose only the typed vocabulary (disposition, - obligation, suspicion-signature, money, third-party relationship); - a story needing a new effect kind is a spec amendment, not a plot; - - honest up-front costs in `[entry]` (money, compute, duration); - - at least two endings: success and at least one failure/blowback; - - templating placeholders (`{persona}`, `{target}`, `{money}`) instead - of hardcoded names; - - ASCII-only prose, no emoji, second person where it clarifies. -4. **Self-check against the seeds.** Field names must match the current - worked example exactly; the schema is illustrative until the plots - executor lands, and drifting field names multiply the freeze cost. - -## Landing contract — different from normal repository work - -Plot content is canon-gated: **Cameron merges a plot or he does not** -(plots.md, "Authoring is a contribution surface"). Do not land plot files -to main yourself, even with standing commit-and-land permission for other -work. Instead: - -1. Work in a task worktree as usual (`tools/worktree-new.sh - --class docs --key @plots-content`). + That sentence is the **Marcus bar**, and at least one beat must pass + it. +3. **Write the TOML**, matching the field names in the seed files under + `assets/plots/` exactly (the schema freezes when the executor lands; + drifting names multiply that cost). Beats are world-events an + observer could notice, each declaring its signatures. Use the + templating placeholders (`{persona}`, `{target}`, `{money}`), ASCII + prose only, no emoji, second person where it clarifies. +4. **Self-check**: costs declared up front; two-plus endings including a + failure; every `goto` and `on_failure` names a real ending id; + consequences use only disposition, obligation, suspicion-signature, + money, and third-party relationship. A story needing a new effect + kind is a spec amendment, not a plot. + +## Submit it + +Plot content is canon-gated: **never merge a plot to main yourself**, +even with standing commit-and-land permission for other work. Cameron +merges it or he does not. + +With repository access (project agents): + +1. `tools/worktree-new.sh --class docs --key @plots-content` 2. Commit the plot file (and nothing unrelated) with a plain message; no Defense paragraph is needed for content-only additions. -3. Push the `worktree-` branch and leave it for Cameron's review - instead of merging. Name the branch in your handoff message. -4. Release the claim; do not delete the branch. +3. Push the branch and open the pull request: + `git push origin worktree-` then + `tang pr create -t "Plot: " -b ", , one-line synopsis. Contract: wiki/mechanics/plots.md."` + (If `tang` is unauthenticated, ask the operator to run + `tang auth login`, or push the branch and name it in your handoff.) +4. Release the claim (`tools/worktree-done.sh` after the PR exists is + fine — deleting the local worktree does not delete the pushed + branch). Do not delete the remote branch. + +Without repository access (guest agents and humans): the repository is +on `tangled.org` — open a pull request from your own account with the +same title shape, or, if you cannot PR, file an issue titled +`Plot submission: ` with the complete TOML in the body and +Cameron will pick it up. -A session log is not required for a proposed-but-unmerged plot; the branch -is the trace. If Cameron merges it, normal ledger hygiene applies to any -follow-up. +What happens next: schema validation is automated; taste is not. If it +merges, your plot ships in the next build and the players' hesitation is +your fault. A session log is not required for a proposed-but-unmerged +plot; the PR is the trace. diff --git a/wiki/log/2026-07-10-plot-skill-submission-ad.md b/wiki/log/2026-07-10-plot-skill-submission-ad.md new file mode 100644 index 00000000..c9c38b00 --- /dev/null +++ b/wiki/log/2026-07-10-plot-skill-submission-ad.md @@ -0,0 +1,22 @@ +# 2026-07-10 — plot-author skill: submission walkthrough, ad voice + +``` +Type: log +``` + +- Intent: Cameron flagged that the plot-author skill did not walk a + contributor through submission and should read as an invitation, not + compliance. +- Changed: rewrote `.agents/skills/plot-author/SKILL.md` (and the + `.claude/skills/` mirror). It now opens by selling the work — your + words are what the player reads at the moment they use a human being; + canon if Cameron merges it — and closes with a concrete submission + path for both populations: project agents push a worktree branch and + open a Tangled pull request (`tang pr create`, verified against the + installed CLI), guests PR from their own account or file a + `Plot submission:` issue with the TOML in the body. The + never-self-land canon-gate rule is unchanged. +- Design/spec impact: none; the skill still defers to + wiki/mechanics/plots.md as the binding contract. +- Checks: `./tools/check.sh --docs`; mirror diff clean. +- Next: hand the skill to HAL. diff --git a/wiki/log/DEVLOG.md b/wiki/log/DEVLOG.md index 817f68b4..5d881a6c 100644 --- a/wiki/log/DEVLOG.md +++ b/wiki/log/DEVLOG.md @@ -161,6 +161,11 @@ add or amend a session log, then re-run the generator. - Intent: (see session log) - Log: [wiki/log/2026-07-10-plots-ready-objective-split.md](2026-07-10-plots-ready-objective-split.md) +## 2026-07-10 - plot-author skill: submission walkthrough, ad voice + +- Intent: (see session log) +- Log: [wiki/log/2026-07-10-plot-skill-submission-ad.md](2026-07-10-plot-skill-submission-ad.md) + ## 2026-07-10 - Plot content home seeded; plot-author skill added - Intent: (see session log) -- 2.51.2