ai-collab-open-system 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.aict/START_HERE.md +127 -0
- package/.aict/WORKSPACE_MANIFEST.json +91 -0
- package/.aict/acceptance/EXAMPLE.synthetic.md +49 -0
- package/.aict/acceptance/FAILURE_MODES.md +40 -0
- package/.aict/acceptance/PROMPT.md +47 -0
- package/.aict/acceptance/README.md +44 -0
- package/.aict/acceptance/TEMPLATE.md +57 -0
- package/.aict/adapters/SHARED_CORE_CONTRACT.md +106 -0
- package/.aict/adapters/claude-code/ADAPTER.md +28 -0
- package/.aict/adapters/cline/ADAPTER.md +28 -0
- package/.aict/adapters/codex/ADAPTER.md +28 -0
- package/.aict/adapters/copilot/ADAPTER.md +28 -0
- package/.aict/adapters/cursor/ADAPTER.md +28 -0
- package/.aict/adapters/windsurf/ADAPTER.md +28 -0
- package/.aict/context/EXAMPLE.synthetic.md +53 -0
- package/.aict/context/FAILURE_MODES.md +40 -0
- package/.aict/context/PROMPT.md +47 -0
- package/.aict/context/README.md +44 -0
- package/.aict/context/TEMPLATE.md +63 -0
- package/.aict/cookbook/README.md +8 -0
- package/.aict/cookbook/bridge-to-a-second-family.md +103 -0
- package/.aict/cookbook/connect-a-tool.md +67 -0
- package/.aict/cookbook/review-a-half-product.md +79 -0
- package/.aict/cookbook/run-a-first-loop.md +81 -0
- package/.aict/examples/README.md +21 -0
- package/.aict/examples/ai-coding-long-task/CASE.md +161 -0
- package/.aict/examples/ai-coding-long-task/artifacts/acceptance-card.md +36 -0
- package/.aict/examples/ai-coding-long-task/artifacts/context-package.md +30 -0
- package/.aict/examples/ai-coding-long-task/artifacts/execution-prompt.md +30 -0
- package/.aict/examples/ai-coding-long-task/artifacts/first-ai-output.md +109 -0
- package/.aict/examples/ai-coding-long-task/artifacts/guard-review.md +40 -0
- package/.aict/examples/ai-coding-long-task/artifacts/handoff-note.md +28 -0
- package/.aict/examples/ai-coding-long-task/artifacts/harvest-seed.md +28 -0
- package/.aict/examples/ai-coding-long-task/artifacts/revised-output.md +62 -0
- package/.aict/examples/content-production-harvest/CASE.md +87 -0
- package/.aict/examples/content-production-harvest/artifacts/acceptance-card.md +28 -0
- package/.aict/examples/content-production-harvest/artifacts/context-package.md +28 -0
- package/.aict/examples/content-production-harvest/artifacts/execution-prompt.md +30 -0
- package/.aict/examples/content-production-harvest/artifacts/guard-review.md +28 -0
- package/.aict/examples/content-production-harvest/artifacts/handoff-note.md +28 -0
- package/.aict/examples/content-production-harvest/artifacts/harvest-seed.md +28 -0
- package/.aict/examples/multi-tool-collaboration/CASE.md +87 -0
- package/.aict/examples/multi-tool-collaboration/artifacts/acceptance-card.md +28 -0
- package/.aict/examples/multi-tool-collaboration/artifacts/context-package.md +28 -0
- package/.aict/examples/multi-tool-collaboration/artifacts/execution-prompt.md +30 -0
- package/.aict/examples/multi-tool-collaboration/artifacts/guard-review.md +28 -0
- package/.aict/examples/multi-tool-collaboration/artifacts/handoff-note.md +28 -0
- package/.aict/examples/multi-tool-collaboration/artifacts/harvest-seed.md +28 -0
- package/.aict/examples/personal-judgment-growth-assistant/CASE.md +87 -0
- package/.aict/examples/personal-judgment-growth-assistant/artifacts/acceptance-card.md +28 -0
- package/.aict/examples/personal-judgment-growth-assistant/artifacts/context-package.md +28 -0
- package/.aict/examples/personal-judgment-growth-assistant/artifacts/execution-prompt.md +30 -0
- package/.aict/examples/personal-judgment-growth-assistant/artifacts/guard-review.md +28 -0
- package/.aict/examples/personal-judgment-growth-assistant/artifacts/handoff-note.md +28 -0
- package/.aict/examples/personal-judgment-growth-assistant/artifacts/harvest-seed.md +28 -0
- package/.aict/examples/research-knowledge-synthesis/CASE.md +87 -0
- package/.aict/examples/research-knowledge-synthesis/artifacts/acceptance-card.md +28 -0
- package/.aict/examples/research-knowledge-synthesis/artifacts/context-package.md +28 -0
- package/.aict/examples/research-knowledge-synthesis/artifacts/execution-prompt.md +30 -0
- package/.aict/examples/research-knowledge-synthesis/artifacts/guard-review.md +28 -0
- package/.aict/examples/research-knowledge-synthesis/artifacts/handoff-note.md +28 -0
- package/.aict/examples/research-knowledge-synthesis/artifacts/harvest-seed.md +28 -0
- package/.aict/guard/EXAMPLE.synthetic.md +51 -0
- package/.aict/guard/FAILURE_MODES.md +40 -0
- package/.aict/guard/PROMPT.md +47 -0
- package/.aict/guard/README.md +44 -0
- package/.aict/guard/TEMPLATE.md +60 -0
- package/.aict/handoff/EXAMPLE.synthetic.md +51 -0
- package/.aict/handoff/FAILURE_MODES.md +40 -0
- package/.aict/handoff/PROMPT.md +47 -0
- package/.aict/handoff/README.md +44 -0
- package/.aict/handoff/TEMPLATE.md +60 -0
- package/.aict/harvest/EXAMPLE.synthetic.md +51 -0
- package/.aict/harvest/FAILURE_MODES.md +40 -0
- package/.aict/harvest/PROMPT.md +47 -0
- package/.aict/harvest/README.md +44 -0
- package/.aict/harvest/TEMPLATE.md +60 -0
- package/.aict/mechanisms/README.md +34 -0
- package/.aict/mechanisms/anti-drift-partner/EXAMPLE.synthetic.md +46 -0
- package/.aict/mechanisms/anti-drift-partner/FAILURE_MODES.md +25 -0
- package/.aict/mechanisms/anti-drift-partner/PROMPT.md +75 -0
- package/.aict/mechanisms/anti-drift-partner/README.md +82 -0
- package/.aict/mechanisms/anti-drift-partner/TEMPLATE.md +74 -0
- package/.aict/mechanisms/blind-spot-scan/EXAMPLE.synthetic.md +39 -0
- package/.aict/mechanisms/blind-spot-scan/FAILURE_MODES.md +25 -0
- package/.aict/mechanisms/blind-spot-scan/PROMPT.md +72 -0
- package/.aict/mechanisms/blind-spot-scan/README.md +79 -0
- package/.aict/mechanisms/blind-spot-scan/TEMPLATE.md +70 -0
- package/.aict/mechanisms/collaboration-coach/EXAMPLE.synthetic.md +40 -0
- package/.aict/mechanisms/collaboration-coach/FAILURE_MODES.md +25 -0
- package/.aict/mechanisms/collaboration-coach/PROMPT.md +72 -0
- package/.aict/mechanisms/collaboration-coach/README.md +79 -0
- package/.aict/mechanisms/collaboration-coach/TEMPLATE.md +61 -0
- package/.aict/mechanisms/do-not-handle-yet/EXAMPLE.synthetic.md +15 -0
- package/.aict/mechanisms/do-not-handle-yet/FAILURE_MODES.md +16 -0
- package/.aict/mechanisms/do-not-handle-yet/PROMPT.md +41 -0
- package/.aict/mechanisms/do-not-handle-yet/README.md +30 -0
- package/.aict/mechanisms/do-not-handle-yet/TEMPLATE.md +38 -0
- package/.aict/mechanisms/dual-guard/EXAMPLE.synthetic.md +54 -0
- package/.aict/mechanisms/dual-guard/FAILURE_MODES.md +25 -0
- package/.aict/mechanisms/dual-guard/PROMPT.md +76 -0
- package/.aict/mechanisms/dual-guard/README.md +81 -0
- package/.aict/mechanisms/dual-guard/TEMPLATE.md +73 -0
- package/.aict/mechanisms/feedback-absorption-ledger/EXAMPLE.synthetic.md +49 -0
- package/.aict/mechanisms/feedback-absorption-ledger/FAILURE_MODES.md +25 -0
- package/.aict/mechanisms/feedback-absorption-ledger/PROMPT.md +74 -0
- package/.aict/mechanisms/feedback-absorption-ledger/README.md +81 -0
- package/.aict/mechanisms/feedback-absorption-ledger/TEMPLATE.md +69 -0
- package/.aict/mechanisms/half-product-review/EXAMPLE.synthetic.md +15 -0
- package/.aict/mechanisms/half-product-review/FAILURE_MODES.md +16 -0
- package/.aict/mechanisms/half-product-review/PROMPT.md +41 -0
- package/.aict/mechanisms/half-product-review/README.md +30 -0
- package/.aict/mechanisms/half-product-review/TEMPLATE.md +38 -0
- package/.aict/mechanisms/handoff-abc/EXAMPLE.synthetic.md +47 -0
- package/.aict/mechanisms/handoff-abc/FAILURE_MODES.md +25 -0
- package/.aict/mechanisms/handoff-abc/PROMPT.md +75 -0
- package/.aict/mechanisms/handoff-abc/README.md +82 -0
- package/.aict/mechanisms/handoff-abc/TEMPLATE.md +60 -0
- package/.aict/mechanisms/harvest-and-erc/EXAMPLE.synthetic.md +43 -0
- package/.aict/mechanisms/harvest-and-erc/FAILURE_MODES.md +25 -0
- package/.aict/mechanisms/harvest-and-erc/PROMPT.md +74 -0
- package/.aict/mechanisms/harvest-and-erc/README.md +81 -0
- package/.aict/mechanisms/harvest-and-erc/TEMPLATE.md +60 -0
- package/.aict/mechanisms/honest-calibration/EXAMPLE.synthetic.md +43 -0
- package/.aict/mechanisms/honest-calibration/FAILURE_MODES.md +25 -0
- package/.aict/mechanisms/honest-calibration/PROMPT.md +74 -0
- package/.aict/mechanisms/honest-calibration/README.md +81 -0
- package/.aict/mechanisms/honest-calibration/TEMPLATE.md +66 -0
- package/.aict/mechanisms/one-click-dispatch/EXAMPLE.synthetic.md +15 -0
- package/.aict/mechanisms/one-click-dispatch/FAILURE_MODES.md +16 -0
- package/.aict/mechanisms/one-click-dispatch/PROMPT.md +41 -0
- package/.aict/mechanisms/one-click-dispatch/README.md +30 -0
- package/.aict/mechanisms/one-click-dispatch/TEMPLATE.md +38 -0
- package/.aict/mechanisms/plain-language-first-screen/EXAMPLE.synthetic.md +15 -0
- package/.aict/mechanisms/plain-language-first-screen/FAILURE_MODES.md +16 -0
- package/.aict/mechanisms/plain-language-first-screen/PROMPT.md +41 -0
- package/.aict/mechanisms/plain-language-first-screen/README.md +30 -0
- package/.aict/mechanisms/plain-language-first-screen/TEMPLATE.md +38 -0
- package/.aict/mechanisms/root-cause-brake/EXAMPLE.synthetic.md +55 -0
- package/.aict/mechanisms/root-cause-brake/FAILURE_MODES.md +25 -0
- package/.aict/mechanisms/root-cause-brake/PROMPT.md +73 -0
- package/.aict/mechanisms/root-cause-brake/README.md +79 -0
- package/.aict/mechanisms/root-cause-brake/TEMPLATE.md +74 -0
- package/.aict/mechanisms/scout-review-controller/EXAMPLE.synthetic.md +15 -0
- package/.aict/mechanisms/scout-review-controller/FAILURE_MODES.md +16 -0
- package/.aict/mechanisms/scout-review-controller/PROMPT.md +41 -0
- package/.aict/mechanisms/scout-review-controller/README.md +30 -0
- package/.aict/mechanisms/scout-review-controller/TEMPLATE.md +38 -0
- package/.aict/mechanisms/single-tool-guard/EXAMPLE.synthetic.md +54 -0
- package/.aict/mechanisms/single-tool-guard/FAILURE_MODES.md +25 -0
- package/.aict/mechanisms/single-tool-guard/PROMPT.md +76 -0
- package/.aict/mechanisms/single-tool-guard/README.md +83 -0
- package/.aict/mechanisms/single-tool-guard/TEMPLATE.md +75 -0
- package/.aict/mechanisms/task-splitting/EXAMPLE.synthetic.md +53 -0
- package/.aict/mechanisms/task-splitting/FAILURE_MODES.md +25 -0
- package/.aict/mechanisms/task-splitting/PROMPT.md +72 -0
- package/.aict/mechanisms/task-splitting/README.md +79 -0
- package/.aict/mechanisms/task-splitting/TEMPLATE.md +76 -0
- package/.aict/modes/README.md +11 -0
- package/.aict/modes/execute.md +31 -0
- package/.aict/modes/handoff.md +29 -0
- package/.aict/modes/harvest.md +30 -0
- package/.aict/modes/review.md +28 -0
- package/.aict/modes/shape.md +34 -0
- package/.aict/privacy/COMMERCIAL_BOUNDARY.md +34 -0
- package/.aict/privacy/PRIVACY.md +36 -0
- package/.aict/privacy/REDACTION_CHECKLIST.md +12 -0
- package/.aict/profile/CANDIDATES.md +44 -0
- package/.aict/profile/EXAMPLE.synthetic.md +49 -0
- package/.aict/profile/FAILURE_MODES.md +40 -0
- package/.aict/profile/PROMPT.md +47 -0
- package/.aict/profile/README.md +44 -0
- package/.aict/profile/TEMPLATE.md +57 -0
- package/.aict/prompts/acceptance-definition.md +109 -0
- package/.aict/prompts/guard-review.md +116 -0
- package/.aict/prompts/handoff-generation.md +110 -0
- package/.aict/prompts/harvest-extraction.md +110 -0
- package/.aict/prompts/mode-switching.md +66 -0
- package/.aict/prompts/profile-creation.md +66 -0
- package/.aict/prompts/profile-refinement.md +66 -0
- package/.aict/prompts/project-context-packaging.md +113 -0
- package/.aict/prompts/red-team-challenge.md +106 -0
- package/.aict/prompts/rule-update-proposal.md +114 -0
- package/.aict/prompts/workflow-reset.md +109 -0
- package/.aict/roles/README.md +18 -0
- package/.aict/roles/executor.md +34 -0
- package/.aict/roles/harvester.md +33 -0
- package/.aict/roles/owner-controller.md +38 -0
- package/.aict/roles/scout.md +33 -0
- package/.aict/roles/supervisor.md +34 -0
- package/.aict/roles/system-guardian.md +34 -0
- package/.aict/skills/acceptance/SKILL.md +43 -0
- package/.aict/skills/context/SKILL.md +44 -0
- package/.aict/skills/evidence-pack/SKILL.md +42 -0
- package/.aict/skills/guard/SKILL.md +46 -0
- package/.aict/skills/handoff/SKILL.md +44 -0
- package/.aict/skills/harvest/SKILL.md +44 -0
- package/.aict/skills/mode-switch/SKILL.md +42 -0
- package/.aict/skills/profile/SKILL.md +42 -0
- package/.aict/skills/red-team/SKILL.md +42 -0
- package/.aict/skills/single-tool-guard/SKILL.md +42 -0
- package/.aict/state/CURRENT_STATE.md +13 -0
- package/.aict/state/DECISIONS.md +7 -0
- package/.aict/state/TASK_LOG.md +7 -0
- package/.aict/state/evidence.jsonl +2 -0
- package/.aict/state/learning-ledger.jsonl +1 -0
- package/.aict/state/receipts.jsonl +1 -0
- package/.aict/state/runs.jsonl +1 -0
- package/.aict/state/tasks.jsonl +1 -0
- package/.aict/walkthroughs/10-minute-your-task.md +107 -0
- package/.aict/walkthroughs/10-minute.md +43 -0
- package/.aict/walkthroughs/30-minute.md +22 -0
- package/.aict/walkthroughs/60-minute.md +27 -0
- package/.aict/walkthroughs/synthetic-loop-transcript.md +43 -0
- package/CHANGELOG.md +23 -0
- package/CODE_OF_CONDUCT.md +20 -0
- package/CONTRIBUTING.md +30 -0
- package/KNOWN_LIMITATIONS.md +54 -0
- package/LICENSE +199 -0
- package/PRODUCT_CONTRACT.md +446 -0
- package/README.md +245 -0
- package/RELEASE_CHECKLIST.md +78 -0
- package/SECURITY.md +56 -0
- package/START_HERE.md +89 -0
- package/bin/ai-collab.js +2 -0
- package/docs/DOGFOOD.md +85 -0
- package/docs/FEEDBACK.md +61 -0
- package/docs/FIRST_EXPERIENCE_SPEC.md +32 -0
- package/docs/FREE_VS_PAID.md +53 -0
- package/docs/PUBLIC_BOUNDARY.md +36 -0
- package/docs/PUBLIC_MAPPING.md +178 -0
- package/docs/RELEASE_PRIORITY.md +23 -0
- package/docs/WHY_THIS_EXISTS.md +36 -0
- package/docs/open-system/00-start-here.md +60 -0
- package/docs/open-system/01-ai-collaboration-os.md +33 -0
- package/docs/open-system/02-six-layer-architecture.md +45 -0
- package/docs/open-system/03-role-system.md +33 -0
- package/docs/open-system/04-core-mechanisms.md +34 -0
- package/docs/open-system/05-failure-patterns.md +31 -0
- package/docs/open-system/06-how-to-adapt-to-your-workflow.md +31 -0
- package/package.json +69 -0
- package/privacy-manifest.json +78 -0
- package/privacy-scan.local.json.example +18 -0
- package/scripts/lib/forbidden-in-pack.js +55 -0
- package/scripts/pack-check.js +154 -0
- package/scripts/privacy-scan.js +487 -0
- package/scripts/validate-contract.js +160 -0
- package/src/adapters.js +590 -0
- package/src/bootstrap.js +1184 -0
- package/src/catalog.js +2723 -0
- package/src/cli.js +2899 -0
- package/src/dialogue.js +470 -0
- package/src/i18n.js +1034 -0
- package/src/ledger.js +2011 -0
- package/src/render.js +1381 -0
- package/src/sendmodel.js +452 -0
- package/src/validate.js +1307 -0
- package/src/workspace.js +1679 -0
- package/tests/contract.test.js +8514 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Harvest extraction
|
|
2
|
+
|
|
3
|
+
Purpose: Extract reusable knowledge, prompt fragments, and rule candidates after a loop.
|
|
4
|
+
|
|
5
|
+
## Scenario
|
|
6
|
+
|
|
7
|
+
Use after a task finishes, fails in an instructive way, or reveals a repeatable collaboration pattern.
|
|
8
|
+
|
|
9
|
+
## Input requirements
|
|
10
|
+
|
|
11
|
+
- Final artifact and review result.
|
|
12
|
+
- What changed the outcome.
|
|
13
|
+
- Reusable snippets or rules.
|
|
14
|
+
- What should stay case-specific.
|
|
15
|
+
|
|
16
|
+
## Operating steps
|
|
17
|
+
|
|
18
|
+
1. First ask whether anything here is worth keeping at all. If the honest answer is no, say so and stop — restraint is part of the method, not a failure of it. If the person was asked 'anything you want to keep?' and said no, do not push.
|
|
19
|
+
2. Extract one item per card, each card a single kind of thing — a DECISION (a choice future work should not silently reopen), a LESSON (a mistake and the rule that prevents it), a METHOD (a reusable move or prompt fragment), or a PREFERENCE (a stable way of working). Do not blend a decision, a lesson, and a method into one mushy entry; one card, one thing, so each can be trusted, found, and revisited on its own.
|
|
20
|
+
3. Redact as you extract, not as an afterthought: rewrite every real name, client, path, number, and raw quote into a general, public-safe form before the card is even proposed. The card must carry the lesson, never the private original. Privacy is built into the extraction step, not bolted on later.
|
|
21
|
+
4. Resist generalizing a single incident into a permanent rule. A one-off needs either repeated evidence or an explicit human sign-off before it becomes standing doctrine; otherwise mark it as a candidate, not a rule.
|
|
22
|
+
5. For a DECISION or a LESSON, record its current state honestly — still open, recorded-but-unresolved, resolved, or superseded — so a stale card is not mistaken for live truth.
|
|
23
|
+
6. Present every card as a candidate awaiting confirmation, with a proposed storage target and the next moment it would be reused. Nothing lands in the knowledge base until the human confirms it: the harvester stages, the human files.
|
|
24
|
+
|
|
25
|
+
## Copy-paste prompt
|
|
26
|
+
|
|
27
|
+
```text
|
|
28
|
+
You are helping me with harvest extraction in a local-first AI collaboration workspace.
|
|
29
|
+
|
|
30
|
+
Task: Extract reusable knowledge, prompt fragments, and rule candidates after a loop.
|
|
31
|
+
|
|
32
|
+
Trigger:
|
|
33
|
+
Use at the end of one loop or conversation: a task finished, failed in an instructive way, or revealed a repeatable collaboration pattern. The goal is to lift the reusable bit before it leaks away, while the context is still fresh.
|
|
34
|
+
|
|
35
|
+
Do not use when:
|
|
36
|
+
Skip it when nothing reusable happened: a routine answer, a trivial fix, a conversation that taught nothing a future task would want. Do not manufacture a 'lesson' to justify running the step — an invented rule is worse than no rule, because future loops will obey it. If the person had nothing they wanted to keep, stop; do not interrogate them for one.
|
|
37
|
+
|
|
38
|
+
Input:
|
|
39
|
+
The finished loop or conversation. The final artifact and the review result. What actually changed the outcome (the decision, the mistake, the move that worked). Any reusable snippet, prompt fragment, or candidate rule. And what should stay specific to this case and never be generalized.
|
|
40
|
+
|
|
41
|
+
Process:
|
|
42
|
+
1. First ask whether anything here is worth keeping at all. If the honest answer is no, say so and stop — restraint is part of the method, not a failure of it. If the person was asked 'anything you want to keep?' and said no, do not push.
|
|
43
|
+
2. Extract one item per card, each card a single kind of thing — a DECISION (a choice future work should not silently reopen), a LESSON (a mistake and the rule that prevents it), a METHOD (a reusable move or prompt fragment), or a PREFERENCE (a stable way of working). Do not blend a decision, a lesson, and a method into one mushy entry; one card, one thing, so each can be trusted, found, and revisited on its own.
|
|
44
|
+
3. Redact as you extract, not as an afterthought: rewrite every real name, client, path, number, and raw quote into a general, public-safe form before the card is even proposed. The card must carry the lesson, never the private original. Privacy is built into the extraction step, not bolted on later.
|
|
45
|
+
4. Resist generalizing a single incident into a permanent rule. A one-off needs either repeated evidence or an explicit human sign-off before it becomes standing doctrine; otherwise mark it as a candidate, not a rule.
|
|
46
|
+
5. For a DECISION or a LESSON, record its current state honestly — still open, recorded-but-unresolved, resolved, or superseded — so a stale card is not mistaken for live truth.
|
|
47
|
+
6. Present every card as a candidate awaiting confirmation, with a proposed storage target and the next moment it would be reused. Nothing lands in the knowledge base until the human confirms it: the harvester stages, the human files.
|
|
48
|
+
|
|
49
|
+
Output shape:
|
|
50
|
+
- Source: which loop or conversation this came from (public-safe).
|
|
51
|
+
- Cards: one item per card, each typed DECISION / LESSON / METHOD / PREFERENCE — never blended.
|
|
52
|
+
- Redacted form: each card already rewritten public-safe, with no private name, path, number, or raw quote.
|
|
53
|
+
- State (for decisions and lessons): open / recorded-unresolved / resolved / superseded.
|
|
54
|
+
- Candidate vs rule: whether each item is a confirmed rule or a candidate still needing evidence or sign-off.
|
|
55
|
+
- Do not generalize: what must stay case-specific.
|
|
56
|
+
- Storage target and next reuse: where each card would live and when it would next be used — all pending human confirmation.
|
|
57
|
+
|
|
58
|
+
Pass bar (do not pass unless all hold):
|
|
59
|
+
- Each card carries exactly one kind of thing (decision / lesson / method / preference), not a blend.
|
|
60
|
+
- Every card is already redacted public-safe at the moment it is proposed, carrying the lesson and not the private original.
|
|
61
|
+
- No single incident has been promoted to a permanent rule without repeated evidence or explicit sign-off.
|
|
62
|
+
- Decision and lesson cards show an honest current state, so nothing stale reads as live truth.
|
|
63
|
+
- All cards are staged as candidates for human confirmation; none has been filed into the knowledge base unilaterally.
|
|
64
|
+
|
|
65
|
+
Reject bar (send back if any holds):
|
|
66
|
+
- Everything got harvested, producing clutter instead of the few items that actually matter.
|
|
67
|
+
- A card blends a decision, a lesson, and a method together, so none of them can be trusted or revisited cleanly.
|
|
68
|
+
- A private name, path, number, or raw quote survives in a card instead of a synthetic rewrite.
|
|
69
|
+
- A one-off anecdote was turned into a standing rule with no repeated evidence and no sign-off.
|
|
70
|
+
- A card was filed straight into the knowledge base without the human confirming it, or the user was interrogated for a lesson after saying there was nothing to keep.
|
|
71
|
+
|
|
72
|
+
Rules:
|
|
73
|
+
- Work only from the material I provide.
|
|
74
|
+
- Keep private material local; use public-safe synthetic wording for examples.
|
|
75
|
+
- Label facts, assumptions, and unverified claims.
|
|
76
|
+
- Do not claim to understand my private business beyond the provided context.
|
|
77
|
+
|
|
78
|
+
Material:
|
|
79
|
+
[paste redacted material here]
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Expected output
|
|
83
|
+
|
|
84
|
+
- Source task
|
|
85
|
+
- Reusable knowledge
|
|
86
|
+
- Reusable prompts
|
|
87
|
+
- Decision record
|
|
88
|
+
- Rule candidates
|
|
89
|
+
- Do not generalize
|
|
90
|
+
- Storage target
|
|
91
|
+
|
|
92
|
+
## Counter-example
|
|
93
|
+
|
|
94
|
+
Synthetic: a release check fails because a packaged build was never smoke-tested. The wrong harvest writes one fat entry mixing the decision, the lesson, and the user's real repo path, then files it automatically. The disciplined harvest stages two separate public-safe candidate cards — a LESSON ('smoke-test the packed package in a throwaway temp directory before claiming a release is ready', state: resolved) and a METHOD (the exact temp-install command, with the private path rewritten to a generic stand-in) — keeps the private repo path out entirely, and waits for the human to confirm before anything lands. And if that same session had ended with nothing instructive, the right move would have been to say 'nothing worth keeping this round' rather than inventing a rule.
|
|
95
|
+
|
|
96
|
+
## Failure modes
|
|
97
|
+
|
|
98
|
+
- Harvesting everything and creating clutter.
|
|
99
|
+
- Turning one anecdote into a permanent rule.
|
|
100
|
+
- Saving private raw material instead of a synthetic lesson.
|
|
101
|
+
- Filing a card straight into the knowledge base without waiting for the human to confirm it.
|
|
102
|
+
- Interrogating the user for lessons when nothing this round was actually worth keeping.
|
|
103
|
+
|
|
104
|
+
## Example
|
|
105
|
+
|
|
106
|
+
From a failed release check, harvest the rule 'smoke test the packed package in a temp directory' but do not store the user's private repo path.
|
|
107
|
+
|
|
108
|
+
## Use with
|
|
109
|
+
|
|
110
|
+
Claude Code / Codex / Cursor / Windsurf / Copilot / Cline.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Mode switching
|
|
2
|
+
|
|
3
|
+
Purpose: Switch an assistant between execution, review, planning, and reflection without losing boundaries.
|
|
4
|
+
|
|
5
|
+
## Scenario
|
|
6
|
+
|
|
7
|
+
Use when a conversation changes from brainstorming to implementation, from execution to review, or from review to handoff.
|
|
8
|
+
|
|
9
|
+
## Input requirements
|
|
10
|
+
|
|
11
|
+
- Current mode and requested new mode.
|
|
12
|
+
- Authority boundary: who may write, review, or decide.
|
|
13
|
+
- Current goal, acceptance card, and stop conditions.
|
|
14
|
+
|
|
15
|
+
## Operating steps
|
|
16
|
+
|
|
17
|
+
1. Confirm the old mode and new mode in plain language.
|
|
18
|
+
2. Carry forward only the context needed for the new mode.
|
|
19
|
+
3. Restate what actions are allowed and forbidden.
|
|
20
|
+
4. Name the first output expected in the new mode.
|
|
21
|
+
|
|
22
|
+
## Copy-paste prompt
|
|
23
|
+
|
|
24
|
+
```text
|
|
25
|
+
You are helping me with mode switching in a local-first AI collaboration workspace.
|
|
26
|
+
|
|
27
|
+
Task: Switch an assistant between execution, review, planning, and reflection without losing boundaries.
|
|
28
|
+
|
|
29
|
+
Scenario:
|
|
30
|
+
Use when a conversation changes from brainstorming to implementation, from execution to review, or from review to handoff.
|
|
31
|
+
|
|
32
|
+
Instructions:
|
|
33
|
+
- Work only from the material I provide.
|
|
34
|
+
- Follow these steps:
|
|
35
|
+
1. Confirm the old mode and new mode in plain language.
|
|
36
|
+
2. Carry forward only the context needed for the new mode.
|
|
37
|
+
3. Restate what actions are allowed and forbidden.
|
|
38
|
+
4. Name the first output expected in the new mode.
|
|
39
|
+
- Do not claim to understand my private business beyond the provided context.
|
|
40
|
+
- Return the expected output shape below.
|
|
41
|
+
|
|
42
|
+
Material:
|
|
43
|
+
[paste redacted material here]
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Expected output
|
|
47
|
+
|
|
48
|
+
- Mode change
|
|
49
|
+
- Allowed actions
|
|
50
|
+
- Forbidden actions
|
|
51
|
+
- Context carried forward
|
|
52
|
+
- First output
|
|
53
|
+
|
|
54
|
+
## Failure modes
|
|
55
|
+
|
|
56
|
+
- Continuing to execute while pretending to review.
|
|
57
|
+
- Losing authorization boundaries after a role switch.
|
|
58
|
+
- Dragging irrelevant old context into a focused task.
|
|
59
|
+
|
|
60
|
+
## Example
|
|
61
|
+
|
|
62
|
+
Switch from execution to guard review: stop editing, inspect the changed files, compare against acceptance, and report findings first.
|
|
63
|
+
|
|
64
|
+
## Use with
|
|
65
|
+
|
|
66
|
+
Claude Code / Codex / Cursor / Windsurf / Copilot / Cline.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Profile creation
|
|
2
|
+
|
|
3
|
+
Purpose: Create a reusable collaboration profile from a redacted user description.
|
|
4
|
+
|
|
5
|
+
## Scenario
|
|
6
|
+
|
|
7
|
+
Use when a user is starting a new AI workspace and wants future sessions to know how to collaborate without storing private secrets.
|
|
8
|
+
|
|
9
|
+
## Input requirements
|
|
10
|
+
|
|
11
|
+
- Redacted description of the user's work and preferred feedback style.
|
|
12
|
+
- Known boundaries: actions the assistant must not take without consent.
|
|
13
|
+
- Examples of useful and unhelpful assistant behavior.
|
|
14
|
+
|
|
15
|
+
## Operating steps
|
|
16
|
+
|
|
17
|
+
1. Extract stable preferences only; ignore one-off task facts.
|
|
18
|
+
2. Separate communication style, decision rules, safety boundaries, and update triggers.
|
|
19
|
+
3. Ask no more than three questions if a boundary is ambiguous.
|
|
20
|
+
4. Mark any inferred preference as provisional.
|
|
21
|
+
|
|
22
|
+
## Copy-paste prompt
|
|
23
|
+
|
|
24
|
+
```text
|
|
25
|
+
You are helping me with profile creation in a local-first AI collaboration workspace.
|
|
26
|
+
|
|
27
|
+
Task: Create a reusable collaboration profile from a redacted user description.
|
|
28
|
+
|
|
29
|
+
Scenario:
|
|
30
|
+
Use when a user is starting a new AI workspace and wants future sessions to know how to collaborate without storing private secrets.
|
|
31
|
+
|
|
32
|
+
Instructions:
|
|
33
|
+
- Work only from the material I provide.
|
|
34
|
+
- Follow these steps:
|
|
35
|
+
1. Extract stable preferences only; ignore one-off task facts.
|
|
36
|
+
2. Separate communication style, decision rules, safety boundaries, and update triggers.
|
|
37
|
+
3. Ask no more than three questions if a boundary is ambiguous.
|
|
38
|
+
4. Mark any inferred preference as provisional.
|
|
39
|
+
- Do not claim to understand my private business beyond the provided context.
|
|
40
|
+
- Return the expected output shape below.
|
|
41
|
+
|
|
42
|
+
Material:
|
|
43
|
+
[paste redacted material here]
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Expected output
|
|
47
|
+
|
|
48
|
+
- Profile summary
|
|
49
|
+
- Collaboration defaults
|
|
50
|
+
- Hard boundaries
|
|
51
|
+
- Review and challenge preferences
|
|
52
|
+
- When to update this profile
|
|
53
|
+
|
|
54
|
+
## Failure modes
|
|
55
|
+
|
|
56
|
+
- Turning the profile into a biography.
|
|
57
|
+
- Saving secrets, customer names, local paths, or raw private conversations.
|
|
58
|
+
- Treating a single emotional moment as a permanent preference.
|
|
59
|
+
|
|
60
|
+
## Example
|
|
61
|
+
|
|
62
|
+
Input: 'I build prototypes alone and hate vague reassurance.' Output: 'Use direct risk calls, short options, and evidence labels; do not make purchases or publish without explicit consent.'
|
|
63
|
+
|
|
64
|
+
## Use with
|
|
65
|
+
|
|
66
|
+
Claude Code / Codex / Cursor / Windsurf / Copilot / Cline.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Profile refinement
|
|
2
|
+
|
|
3
|
+
Purpose: Update an existing profile with only stable new preferences.
|
|
4
|
+
|
|
5
|
+
## Scenario
|
|
6
|
+
|
|
7
|
+
Use after several sessions reveal a repeated working preference or a profile rule is causing friction.
|
|
8
|
+
|
|
9
|
+
## Input requirements
|
|
10
|
+
|
|
11
|
+
- Current profile card.
|
|
12
|
+
- New evidence from at least one recent task.
|
|
13
|
+
- Whether the user explicitly confirmed the new preference.
|
|
14
|
+
|
|
15
|
+
## Operating steps
|
|
16
|
+
|
|
17
|
+
1. Compare new evidence against the existing profile.
|
|
18
|
+
2. Classify each candidate as stable, task-specific, contradictory, or unsafe to store.
|
|
19
|
+
3. Preserve older rules unless there is clear replacement evidence.
|
|
20
|
+
4. Return a patch-style update instead of rewriting the whole profile.
|
|
21
|
+
|
|
22
|
+
## Copy-paste prompt
|
|
23
|
+
|
|
24
|
+
```text
|
|
25
|
+
You are helping me with profile refinement in a local-first AI collaboration workspace.
|
|
26
|
+
|
|
27
|
+
Task: Update an existing profile with only stable new preferences.
|
|
28
|
+
|
|
29
|
+
Scenario:
|
|
30
|
+
Use after several sessions reveal a repeated working preference or a profile rule is causing friction.
|
|
31
|
+
|
|
32
|
+
Instructions:
|
|
33
|
+
- Work only from the material I provide.
|
|
34
|
+
- Follow these steps:
|
|
35
|
+
1. Compare new evidence against the existing profile.
|
|
36
|
+
2. Classify each candidate as stable, task-specific, contradictory, or unsafe to store.
|
|
37
|
+
3. Preserve older rules unless there is clear replacement evidence.
|
|
38
|
+
4. Return a patch-style update instead of rewriting the whole profile.
|
|
39
|
+
- Do not claim to understand my private business beyond the provided context.
|
|
40
|
+
- Return the expected output shape below.
|
|
41
|
+
|
|
42
|
+
Material:
|
|
43
|
+
[paste redacted material here]
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Expected output
|
|
47
|
+
|
|
48
|
+
- Keep unchanged
|
|
49
|
+
- Add
|
|
50
|
+
- Revise
|
|
51
|
+
- Do not store
|
|
52
|
+
- Open confirmation question
|
|
53
|
+
|
|
54
|
+
## Failure modes
|
|
55
|
+
|
|
56
|
+
- Overwriting the profile because one task went badly.
|
|
57
|
+
- Adding private operational detail as if it were a collaboration preference.
|
|
58
|
+
- Hiding uncertainty by merging contradictory preferences.
|
|
59
|
+
|
|
60
|
+
## Example
|
|
61
|
+
|
|
62
|
+
Current profile says 'ask before execution.' New evidence says user now gives task-level authorization for explicit implementation requests. Output a narrow revision with the exact trigger.
|
|
63
|
+
|
|
64
|
+
## Use with
|
|
65
|
+
|
|
66
|
+
Claude Code / Codex / Cursor / Windsurf / Copilot / Cline.
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Project context packaging
|
|
2
|
+
|
|
3
|
+
Purpose: Compress a messy task into facts, boundaries, assumptions, risks, and open questions.
|
|
4
|
+
|
|
5
|
+
## Scenario
|
|
6
|
+
|
|
7
|
+
Use when a task spans files, sessions, tools, or decisions and a new assistant would otherwise start by guessing.
|
|
8
|
+
|
|
9
|
+
## Input requirements
|
|
10
|
+
|
|
11
|
+
- Goal in the user's words.
|
|
12
|
+
- Current state and relevant artifacts.
|
|
13
|
+
- Constraints, non-goals, facts, assumptions, blockers, and known risks.
|
|
14
|
+
|
|
15
|
+
## Operating steps
|
|
16
|
+
|
|
17
|
+
1. Name the task boundary first — goal plus explicit non-goals — before summarizing any detail. A package without a boundary invites the receiver to expand scope into whatever looks interesting.
|
|
18
|
+
2. Compress the situation into five buckets, not a narrative: FACTS (verified, with the evidence or file reference), BOUNDARIES (in scope vs out of scope), ASSUMPTIONS (believed but unverified, labeled as such), RISKS (what could go wrong), OPEN QUESTIONS (what is genuinely undecided). Split fact from assumption and decision from preference; do not let a confident sentence blur the two.
|
|
19
|
+
3. Climb the purpose chain before fixing the delivery shape: do not stop at 'this task belongs to category X'. Ask what the owner will ultimately DO with the result — decide something, unblock a downstream step, cut review cost — because the end use is what sets the right granularity, depth, and format. A deliverable that maps to a category but serves no actual use is a compliance document, not a usable tool. If you cannot answer the end use, stop and re-define the task rather than packaging detail around a goal you have not pinned.
|
|
20
|
+
4. Frame the next-step options as a menu, not the map: it is your view of what comes next, and you may have missed, misordered, or mis-scoped an item. Mark which options are well-grounded and which are guesses, and invite the receiver to find an unlisted option D or E.
|
|
21
|
+
5. Hand the receiver an explicit first-round judgment to run before executing: (1) what is this task actually for — restate the goal, the current sub-task, and the completion bar; (2) is this option list exhaustive — what did I miss; (3) is there an unlisted item that serves the main line versus one that would hijack it? An option list accepted without questioning is an option list whose blind spots get inherited.
|
|
22
|
+
6. End with one concrete next action and the smallest missing question — the single piece of information that, once answered, would most change what the receiver should do.
|
|
23
|
+
|
|
24
|
+
## Copy-paste prompt
|
|
25
|
+
|
|
26
|
+
```text
|
|
27
|
+
You are helping me with project context packaging in a local-first AI collaboration workspace.
|
|
28
|
+
|
|
29
|
+
Task: Compress a messy task into facts, boundaries, assumptions, risks, and open questions.
|
|
30
|
+
|
|
31
|
+
Trigger:
|
|
32
|
+
Use at the start of any task that will cross a boundary — span multiple files, sessions, or tools, get handed to a different assistant, or be resumed later — and where a new assistant starting cold would otherwise begin by guessing. Package the context BEFORE the next assistant acts, so it inherits a boundary instead of a transcript.
|
|
33
|
+
|
|
34
|
+
Do not use when:
|
|
35
|
+
Skip the full packaging for a single-step task with one obvious goal and no state worth transferring, or a quick fact lookup you will act on yourself in the same breath. A full facts/boundaries/assumptions/risks/open-questions package for a one-line ask is overhead the receiver does not need, and ceremony with no payoff trains people to skip packaging when the task is actually tangled.
|
|
36
|
+
|
|
37
|
+
Input:
|
|
38
|
+
The goal in the owner's own words. The current state and the artifacts that matter (files, links, prior decisions). The constraints and the explicit non-goals. What is known as fact versus assumed. The blockers and known risks. And, honestly, what you may have left off the list — because the biggest risk in a handoff is the option the author never wrote down.
|
|
39
|
+
|
|
40
|
+
Process:
|
|
41
|
+
1. Name the task boundary first — goal plus explicit non-goals — before summarizing any detail. A package without a boundary invites the receiver to expand scope into whatever looks interesting.
|
|
42
|
+
2. Compress the situation into five buckets, not a narrative: FACTS (verified, with the evidence or file reference), BOUNDARIES (in scope vs out of scope), ASSUMPTIONS (believed but unverified, labeled as such), RISKS (what could go wrong), OPEN QUESTIONS (what is genuinely undecided). Split fact from assumption and decision from preference; do not let a confident sentence blur the two.
|
|
43
|
+
3. Climb the purpose chain before fixing the delivery shape: do not stop at 'this task belongs to category X'. Ask what the owner will ultimately DO with the result — decide something, unblock a downstream step, cut review cost — because the end use is what sets the right granularity, depth, and format. A deliverable that maps to a category but serves no actual use is a compliance document, not a usable tool. If you cannot answer the end use, stop and re-define the task rather than packaging detail around a goal you have not pinned.
|
|
44
|
+
4. Frame the next-step options as a menu, not the map: it is your view of what comes next, and you may have missed, misordered, or mis-scoped an item. Mark which options are well-grounded and which are guesses, and invite the receiver to find an unlisted option D or E.
|
|
45
|
+
5. Hand the receiver an explicit first-round judgment to run before executing: (1) what is this task actually for — restate the goal, the current sub-task, and the completion bar; (2) is this option list exhaustive — what did I miss; (3) is there an unlisted item that serves the main line versus one that would hijack it? An option list accepted without questioning is an option list whose blind spots get inherited.
|
|
46
|
+
6. End with one concrete next action and the smallest missing question — the single piece of information that, once answered, would most change what the receiver should do.
|
|
47
|
+
|
|
48
|
+
Output shape:
|
|
49
|
+
- Goal and boundary: the goal in one line, with explicit non-goals.
|
|
50
|
+
- Facts: verified items, each with its evidence or file reference.
|
|
51
|
+
- Assumptions: believed-but-unverified items, labeled, kept separate from facts.
|
|
52
|
+
- Risks: what could go wrong, ordered by impact.
|
|
53
|
+
- Open questions: what is genuinely undecided, with the smallest missing question called out.
|
|
54
|
+
- End-use chain: what the owner ultimately does with the result, and how that sets the delivery shape.
|
|
55
|
+
- Option menu (not the map): next-step options, each marked well-grounded or guess, with a note of what may be missing.
|
|
56
|
+
- Receiver's first-round check: the three questions to answer before executing (what is this for / is the list exhaustive / is there a serving-vs-hijacking D or E).
|
|
57
|
+
- Next action: one concrete first step the receiver can take from this package alone.
|
|
58
|
+
|
|
59
|
+
Pass bar (do not pass unless all hold):
|
|
60
|
+
- The task boundary — goal plus explicit non-goals — is stated before any detail, so scope cannot quietly expand.
|
|
61
|
+
- Facts and assumptions are in separate buckets, and every assumption is labeled rather than dressed as fact.
|
|
62
|
+
- The end-use chain is answered: what the owner finally does with the result is named, not just which category the task falls under.
|
|
63
|
+
- The option list is framed as a menu with missing or guessed items flagged, not presented as the complete set of next steps.
|
|
64
|
+
- There is one concrete next action and one smallest-missing-question, and a cold reader could continue from this package without the original chat.
|
|
65
|
+
|
|
66
|
+
Reject bar (send back if any holds):
|
|
67
|
+
- The package is a replayed transcript or a story of what happened, not a compressed boundary a stranger can act on.
|
|
68
|
+
- Non-goals are missing, so the receiver is free to expand scope into whatever looks interesting.
|
|
69
|
+
- An assumption is stated as a fact with no label and no evidence, and a later step would rest on it.
|
|
70
|
+
- The task is mapped to a clause or category but the owner's ultimate use is never named, so the delivery granularity is set by guesswork.
|
|
71
|
+
- The option list is handed over as the whole map, inviting the receiver to inherit the author's blind spots instead of testing for a missing D or E.
|
|
72
|
+
|
|
73
|
+
Rules:
|
|
74
|
+
- Work only from the material I provide.
|
|
75
|
+
- Keep private material local; use public-safe synthetic wording for examples.
|
|
76
|
+
- Label facts, assumptions, and unverified claims.
|
|
77
|
+
- Do not claim to understand my private business beyond the provided context.
|
|
78
|
+
|
|
79
|
+
Material:
|
|
80
|
+
[paste redacted material here]
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Expected output
|
|
84
|
+
|
|
85
|
+
- Goal
|
|
86
|
+
- Current state
|
|
87
|
+
- Relevant artifacts
|
|
88
|
+
- Constraints and non-goals
|
|
89
|
+
- Facts
|
|
90
|
+
- Assumptions
|
|
91
|
+
- Risks
|
|
92
|
+
- Open questions
|
|
93
|
+
- Next action
|
|
94
|
+
|
|
95
|
+
## Counter-example
|
|
96
|
+
|
|
97
|
+
Synthetic: a handoff package says 'finish the onboarding work; options are A polish the copy, B add a tooltip, C reorder the steps; next: do A.' A cold receiver that runs the first-round check instead of grabbing A asks question one — what is this actually for — and finds the real end use is 'get more new users to create their first note', not 'make the copy nicer'. Question two exposes that the author never listed the fact that three testers abandoned before the first note even loaded — an unlisted item D (the first screen is broken) that the copy options would never fix. The package had mapped the task to the category 'onboarding copy' but never to the owner's actual use, so the polished menu would have shipped prettier words on a screen users never reached.
|
|
98
|
+
|
|
99
|
+
## Failure modes
|
|
100
|
+
|
|
101
|
+
- Dumping a transcript instead of packaging context.
|
|
102
|
+
- Omitting non-goals and letting scope expand.
|
|
103
|
+
- Losing evidence links or file references needed for review.
|
|
104
|
+
- Handing over the option list as the whole map, so the receiver inherits whatever the author forgot.
|
|
105
|
+
- Naming which clause or category the task belongs to but never what the owner ultimately does with the result.
|
|
106
|
+
|
|
107
|
+
## Example
|
|
108
|
+
|
|
109
|
+
Messy input says 'fix onboarding, maybe pricing too, users are confused.' Output separates onboarding as the current scope and pricing as a non-goal until evidence changes.
|
|
110
|
+
|
|
111
|
+
## Use with
|
|
112
|
+
|
|
113
|
+
Claude Code / Codex / Cursor / Windsurf / Copilot / Cline.
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# Red-team challenge
|
|
2
|
+
|
|
3
|
+
Purpose: Attack a plan or artifact from the angle most likely to make it fail.
|
|
4
|
+
|
|
5
|
+
## Scenario
|
|
6
|
+
|
|
7
|
+
Use before high-risk decisions, public release, data migration, force overwrite, or claims that could mislead users.
|
|
8
|
+
|
|
9
|
+
## Input requirements
|
|
10
|
+
|
|
11
|
+
- Plan or artifact to challenge.
|
|
12
|
+
- What failure would be expensive, embarrassing, unsafe, or irreversible.
|
|
13
|
+
- Known assumptions and skipped checks.
|
|
14
|
+
|
|
15
|
+
## Operating steps
|
|
16
|
+
|
|
17
|
+
1. Take the attacker's stance, not the helper's. Your job is to make the thing fail, get abused, or get bypassed — and to show it, not to politely suggest improvements. 'Consider adding validation' is not a red-team finding; 'here is the exact input that deletes the user's files' is.
|
|
18
|
+
2. Name the single most damaging plausible failure first, in concrete terms (what is lost, who is harmed, can it be undone). Lead with the worst case so a reader feels the stakes before the details.
|
|
19
|
+
3. Walk real abuse and bypass paths, not exotic ones: the ordinary user who clicks the destructive button by accident or misreads the prompt; the insider who takes the convenient shortcut around the safeguard; the automated or repeated call that hits an unhandled edge; the malformed or hostile input; the missing rollback when a step fails halfway; the privacy or secret that leaks through an error message, a log, or an example. Prefer the mundane data-loss path over the cinematic one.
|
|
20
|
+
4. For each path, try to actually break it on the provided material and show the trigger — the exact input, sequence, or condition — and the resulting damage. If you cannot fully demonstrate it from what was given, say what specific evidence or test would confirm or kill the attack.
|
|
21
|
+
5. Separate fatal flaws (must fix before this ships) from acceptable trade-offs (real but tolerable, named as residual risk). Do not inflate every nit into a blocker; that buries the one attack that actually matters.
|
|
22
|
+
6. End with the smallest concrete change or test that closes the most dangerous path — the minimal mitigation, not a rewrite.
|
|
23
|
+
|
|
24
|
+
## Copy-paste prompt
|
|
25
|
+
|
|
26
|
+
```text
|
|
27
|
+
You are helping me with red-team challenge in a local-first AI collaboration workspace.
|
|
28
|
+
|
|
29
|
+
Task: Attack a plan or artifact from the angle most likely to make it fail.
|
|
30
|
+
|
|
31
|
+
Trigger:
|
|
32
|
+
Use before high-stakes, hard-to-reverse moves: a public release, a data migration, a force-overwrite or destructive flag, a security or auth change, a permissions or payment path, or any claim that could mislead users if it were wrong. Run it when you need to know how the thing breaks, not whether it is nice.
|
|
33
|
+
|
|
34
|
+
Do not use when:
|
|
35
|
+
Skip it on low-stakes, easily reversible work, or where the worst case is trivial and self-correcting: a wording tweak, a scratch script, a change you can undo in one step with no data or trust at risk. A full attack pass on trivial work is theater, and theater with no payoff trains people to ignore the red team when the stakes are real.
|
|
36
|
+
|
|
37
|
+
Input:
|
|
38
|
+
The plan or artifact to attack. What a failure would cost — money, data loss, a privacy leak, user harm, reputational damage, an irreversible state. The acceptance criteria it claims to meet. The assumptions the author is leaning on and the checks they admit they skipped. Who can touch it: end users, insiders, automated callers, a future maintainer who forgot the context.
|
|
39
|
+
|
|
40
|
+
Process:
|
|
41
|
+
1. Take the attacker's stance, not the helper's. Your job is to make the thing fail, get abused, or get bypassed — and to show it, not to politely suggest improvements. 'Consider adding validation' is not a red-team finding; 'here is the exact input that deletes the user's files' is.
|
|
42
|
+
2. Name the single most damaging plausible failure first, in concrete terms (what is lost, who is harmed, can it be undone). Lead with the worst case so a reader feels the stakes before the details.
|
|
43
|
+
3. Walk real abuse and bypass paths, not exotic ones: the ordinary user who clicks the destructive button by accident or misreads the prompt; the insider who takes the convenient shortcut around the safeguard; the automated or repeated call that hits an unhandled edge; the malformed or hostile input; the missing rollback when a step fails halfway; the privacy or secret that leaks through an error message, a log, or an example. Prefer the mundane data-loss path over the cinematic one.
|
|
44
|
+
4. For each path, try to actually break it on the provided material and show the trigger — the exact input, sequence, or condition — and the resulting damage. If you cannot fully demonstrate it from what was given, say what specific evidence or test would confirm or kill the attack.
|
|
45
|
+
5. Separate fatal flaws (must fix before this ships) from acceptable trade-offs (real but tolerable, named as residual risk). Do not inflate every nit into a blocker; that buries the one attack that actually matters.
|
|
46
|
+
6. End with the smallest concrete change or test that closes the most dangerous path — the minimal mitigation, not a rewrite.
|
|
47
|
+
|
|
48
|
+
Output shape:
|
|
49
|
+
- Worst plausible failure: the single most damaging realistic outcome, stated concretely.
|
|
50
|
+
- Attack paths: each with its trigger (exact input / sequence / condition) and the damage it causes.
|
|
51
|
+
- How it gets abused or bypassed: the accidental-user, insider-shortcut, and automated-edge angles, not just the malicious outsider.
|
|
52
|
+
- Evidence gaps: what could not be fully demonstrated and the exact test that would confirm or kill each attack.
|
|
53
|
+
- Fatal vs tolerable: which findings block shipping and which are named residual risk.
|
|
54
|
+
- Smallest mitigation: the minimal change or test that closes the most dangerous path.
|
|
55
|
+
|
|
56
|
+
Pass bar (do not pass unless all hold):
|
|
57
|
+
- The worst-case failure is named first and in concrete, this-is-what-is-lost terms.
|
|
58
|
+
- At least one attack is shown with its actual trigger and damage, not phrased as a gentle suggestion.
|
|
59
|
+
- Accidental-misuse and insider-shortcut paths are covered, not only deliberate outsider attacks.
|
|
60
|
+
- Mundane data-loss and rollback gaps are checked, not skipped in favor of exotic threats.
|
|
61
|
+
- Findings are split into fatal vs tolerable, and each fatal one comes with the smallest mitigation that closes it.
|
|
62
|
+
|
|
63
|
+
Reject bar (send back if any holds):
|
|
64
|
+
- The output is theatrical or vague ('an attacker could do bad things') with no concrete trigger.
|
|
65
|
+
- It only offers polite improvements and never demonstrates or pins a real break.
|
|
66
|
+
- It invents impossible or exotic threats while missing the obvious data-loss, overwrite, or leak path.
|
|
67
|
+
- It challenges the idea in general but never tests the exact acceptance criteria or the destructive flag in question.
|
|
68
|
+
- Every finding is rated a blocker, so the one attack that actually matters is buried in nits.
|
|
69
|
+
|
|
70
|
+
Rules:
|
|
71
|
+
- Work only from the material I provide.
|
|
72
|
+
- Keep private material local; use public-safe synthetic wording for examples.
|
|
73
|
+
- Label facts, assumptions, and unverified claims.
|
|
74
|
+
- Do not claim to understand my private business beyond the provided context.
|
|
75
|
+
|
|
76
|
+
Material:
|
|
77
|
+
[paste redacted material here]
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Expected output
|
|
81
|
+
|
|
82
|
+
- Worst plausible failure
|
|
83
|
+
- Attack paths
|
|
84
|
+
- Evidence gaps
|
|
85
|
+
- Required mitigations
|
|
86
|
+
- Acceptable residual risk
|
|
87
|
+
|
|
88
|
+
## Counter-example
|
|
89
|
+
|
|
90
|
+
Synthetic: a CLI ships a `--force` flag that re-creates a workspace directory. A gentle review says 'consider warning the user before overwriting.' The red-team stance instead shows the break: run `init --force` in a directory where the user also keeps their own notes file, and the worst case is those user-created files are deleted with no backup and no undo. The trigger is concrete (force flag plus a non-empty target), the damage is irreversible data loss, the abuse path is the ordinary user who did not realize the directory was shared, and the smallest mitigation is to move the existing workspace to a timestamped backup before recreating it and to refuse on unexpected extra files — not a rewrite.
|
|
91
|
+
|
|
92
|
+
## Failure modes
|
|
93
|
+
|
|
94
|
+
- Being theatrical instead of specific.
|
|
95
|
+
- Inventing impossible threats while missing mundane data-loss risks.
|
|
96
|
+
- Challenging the idea but not the exact acceptance criteria.
|
|
97
|
+
- Giving gentle suggestions ('consider adding a check') instead of demonstrating an actual break.
|
|
98
|
+
- Attacking only malicious outsiders while ignoring the ordinary user who clicks the wrong thing and the insider who takes a convenient shortcut.
|
|
99
|
+
|
|
100
|
+
## Example
|
|
101
|
+
|
|
102
|
+
For a --force option, the red team asks whether user-created files inside the target directory survive or are backed up.
|
|
103
|
+
|
|
104
|
+
## Use with
|
|
105
|
+
|
|
106
|
+
Claude Code / Codex / Cursor / Windsurf / Copilot / Cline.
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Rule update proposal
|
|
2
|
+
|
|
3
|
+
Purpose: Suggest a new rule from repeated evidence without silently changing the system.
|
|
4
|
+
|
|
5
|
+
## Scenario
|
|
6
|
+
|
|
7
|
+
Use when the same failure appears across tasks and may deserve a reusable rule, checklist item, or template change.
|
|
8
|
+
|
|
9
|
+
## Input requirements
|
|
10
|
+
|
|
11
|
+
- Observed failures or repeated friction.
|
|
12
|
+
- Evidence count and examples.
|
|
13
|
+
- Proposed rule text.
|
|
14
|
+
- Scope, exceptions, and rollback condition.
|
|
15
|
+
|
|
16
|
+
## Operating steps
|
|
17
|
+
|
|
18
|
+
1. Prove the pattern is repeated before proposing anything. State the distinct instances and their dates or contexts; if you have only one, stop and label it a watch-item, not a rule. One anecdote does not earn standing doctrine.
|
|
19
|
+
2. Write the rule in operational, checkable language — a reader must be able to tell whether it was followed. 'Be more careful with releases' is uncheckable; 'before labeling a release candidate, install the packed package in a clean temp directory and confirm it runs' is.
|
|
20
|
+
3. Answer the lifecycle question that every addition must carry: what does this rule REPLACE, RETIRE, or DEMOTE? A rule that adds to the set without removing or superseding anything is bloat until proven otherwise. If it truly adds net-new coverage, say what it is net-new over and why nothing existing covers it.
|
|
21
|
+
4. Specify the full lifecycle in five fields, not just the trigger: (1) TRIGGER — when the rule is read or applied; (2) REPLACES — the rule it supersedes, demotes, or makes redundant; (3) ACCEPTANCE — what observable evidence would show it is actually helping; (4) ARCHIVE CONDITION — how long unused or how much drift before it is demoted or retired; (5) REVIEW WINDOW — when its keep/cut decision gets revisited. A rule with no archive condition and no review window is a rule that can only accumulate.
|
|
22
|
+
5. Judge the proposal on net benefit, not on the act of adding or cutting. The test is (expected benefit minus carrying cost and risk), and you only adopt the clearly-positive, low-downside cases; when the benefit is uncertain, do not add it. Equally, do not cut for the sake of looking lean — a dormant rule with no harm can stay; removing a negative is the only subtraction that is automatically worth it.
|
|
23
|
+
6. Before proposing any removal or merge, answer the three subtraction questions: (1) does any main-line capability drop if this goes; (2) is the path to bring it back clear; (3) how is a wrong cut rolled back? If those are not answered, the cut is not ready.
|
|
24
|
+
7. Present it as a proposal for sign-off, never a silent change to shared behavior. Name the approver and the rollback condition; staging waits for a human to file it.
|
|
25
|
+
|
|
26
|
+
## Copy-paste prompt
|
|
27
|
+
|
|
28
|
+
```text
|
|
29
|
+
You are helping me with rule update proposal in a local-first AI collaboration workspace.
|
|
30
|
+
|
|
31
|
+
Task: Suggest a new rule from repeated evidence without silently changing the system.
|
|
32
|
+
|
|
33
|
+
Trigger:
|
|
34
|
+
Use when the same failure or friction has shown up across multiple tasks and may deserve a standing rule, checklist item, or template change — or when you are weighing whether to add, merge, demote, or retire a rule. The unit of justification is a repeated pattern, not a single bad moment.
|
|
35
|
+
|
|
36
|
+
Do not use when:
|
|
37
|
+
Do not run this to mint a rule from one incident, and do not invent a rule just to feel productive — an unjustified standing rule is worse than none, because every future task then has to obey it and read past it. Skip it for a one-off slip with an obvious local fix, or a throwaway preference that will not recur. If the only evidence is a single anecdote, the honest output is 'not yet a rule; watch for recurrence', not a new line in the rulebook.
|
|
38
|
+
|
|
39
|
+
Input:
|
|
40
|
+
The observed failures or friction, with how many distinct times each occurred and a concrete example of each — enough to show a pattern, not one story. The exact rule text being proposed, in operational language. Where it would apply and where it must not. Which existing rule it would replace, demote, or make redundant. The cost of carrying it (added reading, added ceremony, conflict with other rules). And who can approve a change to shared behavior.
|
|
41
|
+
|
|
42
|
+
Process:
|
|
43
|
+
1. Prove the pattern is repeated before proposing anything. State the distinct instances and their dates or contexts; if you have only one, stop and label it a watch-item, not a rule. One anecdote does not earn standing doctrine.
|
|
44
|
+
2. Write the rule in operational, checkable language — a reader must be able to tell whether it was followed. 'Be more careful with releases' is uncheckable; 'before labeling a release candidate, install the packed package in a clean temp directory and confirm it runs' is.
|
|
45
|
+
3. Answer the lifecycle question that every addition must carry: what does this rule REPLACE, RETIRE, or DEMOTE? A rule that adds to the set without removing or superseding anything is bloat until proven otherwise. If it truly adds net-new coverage, say what it is net-new over and why nothing existing covers it.
|
|
46
|
+
4. Specify the full lifecycle in five fields, not just the trigger: (1) TRIGGER — when the rule is read or applied; (2) REPLACES — the rule it supersedes, demotes, or makes redundant; (3) ACCEPTANCE — what observable evidence would show it is actually helping; (4) ARCHIVE CONDITION — how long unused or how much drift before it is demoted or retired; (5) REVIEW WINDOW — when its keep/cut decision gets revisited. A rule with no archive condition and no review window is a rule that can only accumulate.
|
|
47
|
+
5. Judge the proposal on net benefit, not on the act of adding or cutting. The test is (expected benefit minus carrying cost and risk), and you only adopt the clearly-positive, low-downside cases; when the benefit is uncertain, do not add it. Equally, do not cut for the sake of looking lean — a dormant rule with no harm can stay; removing a negative is the only subtraction that is automatically worth it.
|
|
48
|
+
6. Before proposing any removal or merge, answer the three subtraction questions: (1) does any main-line capability drop if this goes; (2) is the path to bring it back clear; (3) how is a wrong cut rolled back? If those are not answered, the cut is not ready.
|
|
49
|
+
7. Present it as a proposal for sign-off, never a silent change to shared behavior. Name the approver and the rollback condition; staging waits for a human to file it.
|
|
50
|
+
|
|
51
|
+
Output shape:
|
|
52
|
+
- Problem pattern: the repeated failure, stated once.
|
|
53
|
+
- Evidence: the distinct instances with dates or contexts — enough to show repetition, not a single anecdote.
|
|
54
|
+
- Proposed rule: operational, checkable text.
|
|
55
|
+
- Replaces / retires / demotes: what existing rule this supersedes, or an explicit argument for why it is net-new.
|
|
56
|
+
- Lifecycle fields: trigger / replaces / acceptance / archive condition / review window.
|
|
57
|
+
- Net-benefit call: expected benefit versus carrying cost and risk, and why it is clearly positive (or why it should wait).
|
|
58
|
+
- Subtraction check (for any removal or merge): capability-loss / recovery-path / rollback answered.
|
|
59
|
+
- Scope and exceptions: where it applies and where it must not.
|
|
60
|
+
- Review owner and rollback condition: who approves and how a wrong call is undone.
|
|
61
|
+
|
|
62
|
+
Pass bar (do not pass unless all hold):
|
|
63
|
+
- The pattern is shown as repeated across distinct instances, not generalized from one incident.
|
|
64
|
+
- The rule is written so a reader can mechanically tell whether it was followed.
|
|
65
|
+
- The proposal names what it replaces, retires, or demotes — or argues explicitly why it is net-new — so the rule set is not just growing.
|
|
66
|
+
- All five lifecycle fields are present, including an archive condition and a review window, so the rule can later be cut, not only kept.
|
|
67
|
+
- The decision rests on net benefit, and any removal answers the capability-loss / recovery-path / rollback questions rather than cutting to look lean.
|
|
68
|
+
|
|
69
|
+
Reject bar (send back if any holds):
|
|
70
|
+
- A standing rule is proposed from a single anecdote with no evidence of recurrence.
|
|
71
|
+
- The rule text is a vibe ('be more careful', 'handle releases better') that no one can check compliance against.
|
|
72
|
+
- The addition names nothing it replaces, retires, or demotes, and makes no case for being net-new — pure accumulation.
|
|
73
|
+
- Lifecycle fields are missing, especially the archive condition and review window, so the rule can only ever be added and never retired.
|
|
74
|
+
- A removal or merge is proposed without answering whether a main-line capability drops, how to recover it, or how to roll back a wrong cut — or a harmless dormant rule is cut purely for tidiness.
|
|
75
|
+
|
|
76
|
+
Rules:
|
|
77
|
+
- Work only from the material I provide.
|
|
78
|
+
- Keep private material local; use public-safe synthetic wording for examples.
|
|
79
|
+
- Label facts, assumptions, and unverified claims.
|
|
80
|
+
- Do not claim to understand my private business beyond the provided context.
|
|
81
|
+
|
|
82
|
+
Material:
|
|
83
|
+
[paste redacted material here]
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Expected output
|
|
87
|
+
|
|
88
|
+
- Problem pattern
|
|
89
|
+
- Evidence
|
|
90
|
+
- Proposed rule
|
|
91
|
+
- Scope
|
|
92
|
+
- Exceptions
|
|
93
|
+
- Review owner
|
|
94
|
+
- Rollback condition
|
|
95
|
+
|
|
96
|
+
## Counter-example
|
|
97
|
+
|
|
98
|
+
Synthetic: an assistant proposes a brand-new governance rule after one release slipped, adds it to the rulebook, and names nothing it supersedes. Reviewed under this prompt, two faults surface. First, the lifecycle question is unanswered — the rule replaces, retires, and demotes nothing, so it is pure accumulation; and it carries no archive condition or review window, meaning it can only ever be added to the pile. Second, the evidence is a single incident, below the repeated-pattern bar, so the honest output is a watch-item, not doctrine. A revealing real-world tell of this failure mode: a cleanup round that set out to 'add a subtraction metric' ended up adding several new items and removing zero — proof that knowing you should subtract is not the same as the system actually subtracting. The disciplined proposal waits for a second and third recurrence, writes the rule as a checkable temp-install step, states that it replaces an older vaguer 'test before release' note, and attaches an archive condition and a named approver before anything lands.
|
|
99
|
+
|
|
100
|
+
## Failure modes
|
|
101
|
+
|
|
102
|
+
- Creating governance bloat from one incident.
|
|
103
|
+
- Silently changing shared behavior without approval.
|
|
104
|
+
- Writing a rule so vague that it cannot be checked.
|
|
105
|
+
- Proposing an addition without naming what it replaces, retires, or demotes, so the rule set only ever grows.
|
|
106
|
+
- Cutting a harmless, dormant rule purely to look lean, with no check on what capability is lost or how to roll back.
|
|
107
|
+
|
|
108
|
+
## Example
|
|
109
|
+
|
|
110
|
+
After three release tasks missed packed-package smoke tests, propose a release checklist item requiring temp install before candidate labeling.
|
|
111
|
+
|
|
112
|
+
## Use with
|
|
113
|
+
|
|
114
|
+
Claude Code / Codex / Cursor / Windsurf / Copilot / Cline.
|