You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit ef8735a
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: skills/creating-chopin-plans/SKILL.md
+60-10Lines changed: 60 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,13 +1,15 @@
1
1
---
2
2
name: creating-chopin-plans
3
-
description: Use when a coding-agent conversation has settled enough context to create a new Chopin documentthrough the create_document MCP tool.
3
+
description: Use when a coding-agent conversation has settled enough context to create a Chopin document, or when revising an existing document through update_document after review or new findings.
4
4
---
5
5
6
-
# Creating a Chopin plan
6
+
# Creating and revising a Chopin plan
7
7
8
8
Create one initial Chopin document from the useful outcome of the settled
9
-
conversation. Chopin's current MCP instructions and tool descriptions are
10
-
authoritative.
9
+
conversation, then revise that same document as the plan develops. Chopin's
10
+
current MCP instructions and tool descriptions are authoritative. If
11
+
`update_document` is unavailable, report that limitation instead of creating a
12
+
replacement document or trying to trigger the Planner.
11
13
12
14
## Prepare the brief
13
15
@@ -28,16 +30,64 @@ expressions, raw HTML, arbitrary JSX, or component ids owned by Chopin.
28
30
Generate one idempotency key for the attempt, then use the current
29
31
`create_document` descriptor to submit the brief, provenance, title, and plan.
30
32
If it reports validation issues, repair the relevant content and retry with the
31
-
same key. Once creation succeeds, do not call `create_document` again. Later
32
-
revisions of that same document use `update_document` against the revision
33
-
returned by `read_document`, with a new idempotency key.
33
+
same key. Once creation succeeds, do not call `create_document` again for that
34
+
document. Follow the revision flow below to preserve its Conversation and
35
+
Decisions.
36
+
37
+
## Revise an existing document
38
+
39
+
1. Read the supplied canonical document URL or UUID with `read_document`. Work
40
+
from its latest `source` and `revision`, not a copied plan or an earlier tool
41
+
result. Confirm that the requested change belongs to this document.
42
+
2. Prepare the full replacement MDX in `plan`, including unchanged prose. Copy
43
+
existing Questionnaire, Decision, and Research projections unchanged,
44
+
including their ids and answers. Do not invent, remove, or rewrite those
45
+
server-owned components to make the edit pass validation.
46
+
3. Call `update_document` with `id`, the revision just read, the complete `plan`,
47
+
and a new nonblank `idempotencyKey` of at most 128 characters. Keep the exact
48
+
arguments until the outcome is known. The caller needs repository push or
49
+
administration access; its MCP bearer does not acquire Planner ownership.
50
+
4. If the response is lost or uncertain, retry with the same key and identical
51
+
arguments, including the original URL or UUID. Do not switch identifiers or
52
+
change the source during a retry. A replay returns the original applied
53
+
source and revision, which may no longer be the latest document. Read again
54
+
before planning another edit.
55
+
56
+
If the document already has an approved implementation graph, changing its
57
+
source makes that graph's plan revision stale even before a run is claimed.
58
+
Coordinate a graph revision and renewed approval before expecting implementation
59
+
to start; a successful document update does not update or approve the graph.
60
+
61
+
Handle refusals without overwriting collaborators' work:
62
+
63
+
-`revision-conflict`: re-read the complete document, reconcile the requested
64
+
edit with intervening changes, and submit a new update with a new key. Do not
65
+
merely replace the revision number on stale source.
66
+
-`idempotency-conflict`: the key was reused with different arguments. Recover
67
+
the original request for an uncertain retry; use a new key only for an
68
+
intentional new update after reading the current document.
69
+
-`issues`: repair the reported validation problem. Treat changed arguments as
70
+
a new update with a new key.
71
+
-`protected-projection`: re-read and preserve the exact server-owned projections.
72
+
This code also covers other rewrite validation or reconciliation refusals. If
73
+
unchanged projections still fail, stop and report the refusal rather than
74
+
repeatedly retrying or stripping components to get past it.
75
+
-`document-locked`: stop document edits and follow the implementation's
76
+
revision and graph-release process. Do not bypass the lock by creating a copy.
77
+
-`document-archived`: stop and ask whether to restore the document; do not
78
+
restore or replace it implicitly.
79
+
-`repository-forbidden` or `document-unavailable`: report the access or
80
+
availability problem instead of recreating the document.
34
81
35
82
## Hand off
36
83
37
-
Return the created document's human-readable `url` as the canonical handoff,
84
+
Return the created or updated document's human-readable `url` as the canonical handoff,
38
85
with its title. Treat the returned `id` as an internal MCP identifier: include it
39
86
separately when useful, but never replace the `/documents/...` URL with a
40
87
`/channels/<id>` link. Do not open it automatically.
88
+
After an idempotent replay, use a fresh `read_document` result for the current
89
+
title and canonical URL, since the stored response may predate a rename. Keep
90
+
the replay's accepted revision distinct from the latest revision.
41
91
42
-
Use [prompt.md](prompt.md) as a starter when handing an already-settled
43
-
conversation to an agent with this skill installed.
92
+
Use [prompt.md](prompt.md) as a starter for creation or revision with this skill
Copy file name to clipboardExpand all lines: skills/implementing-chopin-plans/SKILL.md
+18Lines changed: 18 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,6 +25,24 @@ Re-read the implementation before every lifecycle action, then follow the servic
25
25
- Perform a separate review pass after implementation. Prefer a fresh reviewer sub-agent; otherwise review independently after stepping away. Resolve in-scope findings and run focused checks.
26
26
- Create exactly one pull request per task. Update that pull request if later verification returns the task to work.
27
27
28
+
## When the document needs revision
29
+
30
+
`update_document` is for document authoring, not an implementation lifecycle
31
+
shortcut. An active implementation locks the document and returns
32
+
`document-locked` for a new update. If scope, acceptance criteria, or dependencies
33
+
must change, stop code work and follow the current `request_revision` contract
34
+
to release the graph. A task blocker alone does not release that lock.
35
+
36
+
After release, hand the required document changes back to the authoring workflow.
37
+
It should read the latest source and revision, preserve server-owned projections,
38
+
and use a new revision-guarded update rather than recreate the document. Do not
39
+
silently switch from implementing to rewriting or approving the plan. Resume
40
+
implementation only after the service exposes an approved graph and a new claim
41
+
succeeds against its current revisions and checkout context.
42
+
Approval currently has no production UI or route. If no operator-provided
43
+
approval path is available, report that blocker rather than promising an
44
+
automatic resume.
45
+
28
46
## Verify the graph
29
47
30
48
After every task is complete, perform an independent whole-graph verification. Run all relevant checks and capture command names, outcomes, and limitations as evidence for every task. Submit that evidence through the current service contract and follow the returned lifecycle state; only an accepted passing result releases a successful implementation.
0 commit comments