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,49 @@
|
|
|
1
|
+
# Feedback Absorption Ledger Synthetic Example
|
|
2
|
+
|
|
3
|
+
This is a public-safe synthetic example for the AI Collaboration Open System. It is local-first and contains no private account, customer, route, hook, or conversation material.
|
|
4
|
+
|
|
5
|
+
## Synthetic example
|
|
6
|
+
|
|
7
|
+
A controller merging three reviews of a synthetic spec does not write 'all helpful, will incorporate'. They ledger it: reviewer A's data-shape fix is ABSORBED FULLY (right and clearly scoped); reviewer B's 'add retries everywhere' is ABSORBED WITH A BOUNDARY (yes for the network call, no for the local parse, with the reason); reviewer C's 'rename the module' is REJECTED with an independent reason (the name encodes a deliberate distinction C missed) plus an alternative comment. The resulting mix — one full, one bounded, one rejected — is reported as the outcome of judging each on its merits, explicitly not a quota the controller was aiming for.
|
|
8
|
+
|
|
9
|
+
## Full worked example (filled end to end)
|
|
10
|
+
|
|
11
|
+
A maintainer of a synthetic open-source tool gets three reviews on the same pull request and has to merge them into one revision. The instinct is to thank everyone and apply all of it. Instead they run the Feedback Absorption Ledger so the synthesis stays their own judgment.
|
|
12
|
+
|
|
13
|
+
### Artifact under revision and the bar
|
|
14
|
+
A pull request adding a retry wrapper to a synthetic data-fetch tool. Bar: it must be correct, must not retry non-idempotent work, and must stay readable for the next maintainer.
|
|
15
|
+
|
|
16
|
+
### Feedback items, listed separately (not merged)
|
|
17
|
+
Item 1 (reviewer A): 'The backoff is fixed-interval; under load this will thundering-herd. Use exponential backoff with jitter.'
|
|
18
|
+
Item 2 (reviewer B): 'Wrap every external call in the retry, not just the fetch — be consistent.'
|
|
19
|
+
Item 3 (reviewer C): 'Rename `fetchOnce` to `fetch`; the `Once` suffix is ugly.'
|
|
20
|
+
Item 4 (reviewer A and reviewer B, same point): 'Add a comment explaining the retry budget.'
|
|
21
|
+
|
|
22
|
+
### Item 1 — tier + reason
|
|
23
|
+
ABSORB AND REFINE. The direction is right (fixed interval is a real herd risk) and I add the more precise version: exponential backoff WITH a cap, so retries do not grow unbounded on a long outage. What I added beyond A's note: the cap, which A did not mention.
|
|
24
|
+
|
|
25
|
+
### Item 2 — tier + reason
|
|
26
|
+
ABSORB WITH A BOUNDARY. Yes for idempotent reads, NO for the write path — blindly retrying a non-idempotent write can double-apply it. Boundary stated in code and review reply: retry wraps reads only; writes are explicitly excluded with a reason.
|
|
27
|
+
|
|
28
|
+
### Item 3 — tier + reason
|
|
29
|
+
REJECT, with an independent reason and an alternative. `Once` is not ugliness — it encodes that the function performs exactly one attempt, which is the contract the retry wrapper depends on; renaming it to `fetch` would blur that distinction and invite someone to add a second internal retry. Alternative offered to C: if the suffix reads oddly, rename to `fetchAttempt`, which keeps the single-attempt meaning. Not rejected to look independent — rejected because the name carries information C's note would erase.
|
|
30
|
+
|
|
31
|
+
### Item 4 — tier + reason
|
|
32
|
+
ABSORB FULLY. Right and clearly scoped, and the fact that two reviewers raised it does not change the verdict — it would be a full absorb even as a lone note, because a retry budget is genuinely opaque without a comment. (Logged explicitly so the ledger shows substance decided it, not the vote count.)
|
|
33
|
+
|
|
34
|
+
### Discipline check (both directions)
|
|
35
|
+
Did I reject anything just to look independent? Checked item 3 specifically — no; the reason stands on the contract, and I offered C a real alternative. Did I absorb anything just to avoid friction? Checked item 2 — I could have just said yes to 'wrap everything' to be agreeable, but the write-path boundary is load-bearing, so it gets a boundary, not a full absorb.
|
|
36
|
+
|
|
37
|
+
### Ratio readout (outcome, not a target)
|
|
38
|
+
Of four items: one full, one refine, one boundary, one reject. I was not aiming for any split — this is simply what judging each point on its merits produced. If all four had been sound I would have absorbed all four; the one rejection is there because one point did not hold, not to keep a ratio looking independent.
|
|
39
|
+
|
|
40
|
+
### Auditable note
|
|
41
|
+
The PR revision links each change back to its ledger row, so the next maintainer can see why writes are excluded from retry and why `fetchOnce` kept its suffix — the synthesis is traceable to per-item judgment, not a wholesale 'applied all review feedback'.
|
|
42
|
+
|
|
43
|
+
## How the mechanism changes the outcome
|
|
44
|
+
|
|
45
|
+
Without this mechanism, a single assistant can produce a smooth answer while hiding uncertainty. With this mechanism, the workflow records trigger, evidence, decision, residual risk, and next action.
|
|
46
|
+
|
|
47
|
+
## Reuse note
|
|
48
|
+
|
|
49
|
+
Copy the shape, not the synthetic facts. Adapt the template to your own redacted task.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Feedback Absorption Ledger Failure Modes
|
|
2
|
+
|
|
3
|
+
AI Collaboration Open System failure checklist. Use it in a local-first workflow before trusting a mechanism run, and rewrite any public example into public-safe language.
|
|
4
|
+
|
|
5
|
+
## Failure modes
|
|
6
|
+
|
|
7
|
+
- The reviewer accepts all incoming feedback wholesale and the synthesis becomes a courier for other people's opinions rather than an independent revision.
|
|
8
|
+
- A target ratio creeps in and individual calls get bent to hit it, so the ledger stops recording honest judgment.
|
|
9
|
+
- Rejects and partial-absorbs are left without reasons, so the synthesis cannot be audited and looks the same as reflexive defensiveness.
|
|
10
|
+
|
|
11
|
+
## Common misuse (operator errors that look fine but break the mechanism)
|
|
12
|
+
|
|
13
|
+
- Collapsing the items into one 'I took the feedback on board' summary, which is exactly the rubber-stamp the ledger is built to stop.
|
|
14
|
+
- Setting a target ratio ('I should reject about a third to stay independent') and then bending individual calls to hit it — the ratio is an outcome, never a goal.
|
|
15
|
+
- Rejecting a sound point to perform independence, trading the courier failure for an equal-and-opposite defensiveness.
|
|
16
|
+
- Absorbing a weak point to avoid friction with the source, then backfilling a reason that does not really hold.
|
|
17
|
+
- Counting votes — letting three echoes of the same shallow note outweigh one strong objection because three feels like more.
|
|
18
|
+
- Leaving rejects and partials without a stated reason, so the synthesis cannot be audited and looks identical to swatting feedback away.
|
|
19
|
+
|
|
20
|
+
## Guard questions
|
|
21
|
+
|
|
22
|
+
1. Did this mechanism change the decision, or just add ceremony?
|
|
23
|
+
2. Is any private material copied instead of summarized or synthesized?
|
|
24
|
+
3. Are blockers, residual risks, and next actions separated?
|
|
25
|
+
4. Could a new session continue from this file alone?
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Feedback Absorption Ledger Prompt
|
|
2
|
+
|
|
3
|
+
This prompt belongs to the AI Collaboration Open System. Use it in a local-first workflow with public-safe or redacted material.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
Keep independent judgment alive when you are synthesizing feedback from several sources by scoring each incoming point across five tiers instead of silently rubber-stamping all of it: absorb fully, absorb and refine, absorb with a boundary, partly absorb, or reject with a reason. The trap this defends against is the controller who collects three reviews and quietly accepts everything, becoming a courier for other people's opinions; the equal-and-opposite trap is reflexively rejecting things to look independent. The ledger forces a per-item decision with a stated reason, and treats the absorb/reject ratio as an OUTCOME of honest judgment, never a target to hit.
|
|
8
|
+
|
|
9
|
+
## Copy-paste prompt
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
Use the Feedback Absorption Ledger mechanism from my local AI Collaboration Open System workspace.
|
|
13
|
+
|
|
14
|
+
Purpose:
|
|
15
|
+
Keep independent judgment alive when you are synthesizing feedback from several sources by scoring each incoming point across five tiers instead of silently rubber-stamping all of it: absorb fully, absorb and refine, absorb with a boundary, partly absorb, or reject with a reason. The trap this defends against is the controller who collects three reviews and quietly accepts everything, becoming a courier for other people's opinions; the equal-and-opposite trap is reflexively rejecting things to look independent. The ledger forces a per-item decision with a stated reason, and treats the absorb/reject ratio as an OUTCOME of honest judgment, never a target to hit.
|
|
16
|
+
|
|
17
|
+
Trigger:
|
|
18
|
+
Use when you are the one merging feedback from more than one source into a single revision or decision: two or three reviews of the same artifact, a mix of guard verdicts plus a stakeholder's notes, several rounds of comments you have to reconcile, or any moment where 'I got a lot of feedback, now what do I actually do with it' is the real question. It is for the synthesis step, where the temptation to either accept-everything or defend-everything is highest.
|
|
19
|
+
|
|
20
|
+
Do not use when:
|
|
21
|
+
Skip the full ledger for a single piece of feedback you can simply act on, or a trivial note with no judgment call in it (a typo fix, an obvious correction). Scoring one unambiguous comment across five tiers is ceremony, and a ritual you run on feedback that needed no deliberation trains you to skip it on the genuinely conflicting feedback where the per-item discipline is the whole point.
|
|
22
|
+
|
|
23
|
+
Input:
|
|
24
|
+
[paste redacted task material, context package, and acceptance card here]
|
|
25
|
+
|
|
26
|
+
Process:
|
|
27
|
+
1. List every feedback item separately before deciding anything. Resist forming one overall impression of 'the feedback' — the method only works if each point gets its own row and its own verdict.
|
|
28
|
+
2. Score each item into exactly one of five tiers, and write the reason. (1) ABSORB FULLY: the point is right and its scope is clear — take it as-is. (2) ABSORB AND REFINE: the direction is right but you add a more precise version — keep the intent, improve the execution, and note what you added. (3) ABSORB WITH A BOUNDARY: accept it, but bound where it applies, naming the cases it should and should not cover. (4) PARTLY ABSORB: take one part and set aside or defer the rest, splitting the item into what you took and what you did not. (5) REJECT: decline it, and give an independent reason, contrary evidence, or an alternative — a reject with no reason does not count.
|
|
29
|
+
3. Judge substance, not source weight or vote count. Three sources making the same weak point do not outvote one strong objection; a single sharp dissent can be the item you absorb fully while the majority note gets a boundary. The ledger records what is right, not what is popular.
|
|
30
|
+
4. Hold the two opposite disciplines at once. You may NOT reject a sound point just to look independent or to avoid feeling like a courier; and you may NOT absorb a weak point just to avoid friction or to be agreeable. Both are failures of judgment in opposite directions, and the stated reason on each row is what keeps you honest about which one you might be slipping into.
|
|
31
|
+
5. Treat the ratio as a readout, not a goal. After scoring, you can look at how much you absorbed versus refined, bounded, partly took, or rejected — but that distribution is the RESULT of judging each item honestly. Never nudge an individual call to make the overall ratio look more independent or more agreeable; the moment the ratio drives a row's verdict, the ledger is corrupted.
|
|
32
|
+
6. Record the ledger so the synthesis is auditable. Keep the per-item tier and reason, especially for every reject and partial-absorb, so a later reviewer (or your future self) can see that each point was weighed on its merits rather than waved through or swatted away.
|
|
33
|
+
|
|
34
|
+
Output shape:
|
|
35
|
+
- One row per feedback item — never a merged 'I considered all the feedback' summary.
|
|
36
|
+
- A single tier per row: absorb fully / absorb and refine / absorb with a boundary / partly absorb / reject.
|
|
37
|
+
- A stated reason on every row, and specifically an independent reason, contrary evidence, or alternative on every reject and partial-absorb.
|
|
38
|
+
- For refine rows, what you added beyond the original; for boundary rows, where it does and does not apply; for partial rows, what was taken and what was set aside.
|
|
39
|
+
- The resulting absorb/reject distribution shown as an outcome readout, with an explicit note that it was not a target.
|
|
40
|
+
- An auditable trail: enough that a later reader can see each point was judged on its merits, not by vote count or by source weight.
|
|
41
|
+
|
|
42
|
+
Return:
|
|
43
|
+
- Decision-changing findings only
|
|
44
|
+
- Evidence used
|
|
45
|
+
- Required fixes
|
|
46
|
+
- Residual risk
|
|
47
|
+
- Next action
|
|
48
|
+
|
|
49
|
+
Pass bar (do not pass unless all hold):
|
|
50
|
+
- Every feedback item has its own row and exactly one tier — nothing is merged into a single overall impression.
|
|
51
|
+
- Every reject and every partial-absorb carries an independent reason, contrary evidence, or a named alternative.
|
|
52
|
+
- Items were judged on substance, not on how many sources said them or how senior the source was.
|
|
53
|
+
- Neither failure direction is present: nothing was rejected merely to look independent, nothing absorbed merely to avoid friction.
|
|
54
|
+
- The absorb/reject ratio is presented as an outcome of the per-item calls, with no sign that any row was bent to make the ratio look a certain way.
|
|
55
|
+
- The ledger is auditable: a later reader can see each point was weighed, not waved through or swatted away.
|
|
56
|
+
|
|
57
|
+
Reject bar (send back if any holds):
|
|
58
|
+
- The feedback was accepted wholesale — 'all good points, I'll incorporate them' — with no per-item decision (the courier failure the ledger exists to prevent).
|
|
59
|
+
- A point was rejected with no reason, contrary evidence, or alternative, so it cannot be told apart from reflexive defensiveness.
|
|
60
|
+
- Decisions tracked vote count or source seniority instead of substance (the majority note won just for being the majority).
|
|
61
|
+
- An individual call was nudged to make the overall ratio look more independent or more agreeable — the ratio drove the verdict.
|
|
62
|
+
- Sound feedback was declined specifically to avoid feeling like a rubber stamp (independence theater), or weak feedback absorbed specifically to keep the peace.
|
|
63
|
+
- The items were blurred into one impression, so there is no auditable trail of which point got what verdict and why.
|
|
64
|
+
|
|
65
|
+
Rules:
|
|
66
|
+
- Work from provided material only.
|
|
67
|
+
- Keep private material local.
|
|
68
|
+
- Use public-safe synthetic wording for examples.
|
|
69
|
+
- Label assumptions and unverified claims.
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Full worked example
|
|
73
|
+
|
|
74
|
+
See `EXAMPLE.synthetic.md` for this prompt run from start to finish on a public-safe synthetic task.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Feedback Absorption Ledger
|
|
2
|
+
|
|
3
|
+
Part of the AI Collaboration Open System. This is a local-first, public-safe mechanism package you can copy into Claude Code, Codex, Cursor, Cline, Windsurf, or Copilot.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
Keep independent judgment alive when you are synthesizing feedback from several sources by scoring each incoming point across five tiers instead of silently rubber-stamping all of it: absorb fully, absorb and refine, absorb with a boundary, partly absorb, or reject with a reason. The trap this defends against is the controller who collects three reviews and quietly accepts everything, becoming a courier for other people's opinions; the equal-and-opposite trap is reflexively rejecting things to look independent. The ledger forces a per-item decision with a stated reason, and treats the absorb/reject ratio as an OUTCOME of honest judgment, never a target to hit.
|
|
8
|
+
|
|
9
|
+
## When to use
|
|
10
|
+
|
|
11
|
+
Use when you are the one merging feedback from more than one source into a single revision or decision: two or three reviews of the same artifact, a mix of guard verdicts plus a stakeholder's notes, several rounds of comments you have to reconcile, or any moment where 'I got a lot of feedback, now what do I actually do with it' is the real question. It is for the synthesis step, where the temptation to either accept-everything or defend-everything is highest.
|
|
12
|
+
|
|
13
|
+
## When not to use
|
|
14
|
+
|
|
15
|
+
Skip the full ledger for a single piece of feedback you can simply act on, or a trivial note with no judgment call in it (a typo fix, an obvious correction). Scoring one unambiguous comment across five tiers is ceremony, and a ritual you run on feedback that needed no deliberation trains you to skip it on the genuinely conflicting feedback where the per-item discipline is the whole point.
|
|
16
|
+
|
|
17
|
+
## Input shape
|
|
18
|
+
|
|
19
|
+
Every incoming feedback item, kept as separate line items rather than blurred into one impression (so each can get its own decision). For each, enough of the original to judge it on its merits — what was said, by whom, and the reason behind it if given. The artifact or decision the feedback is about, and the bar it is being held to, so 'absorb' or 'reject' is measured against something. Your own read on each, because the ledger records YOUR judgment, not a vote tally. And a clear understanding that the final ratio is whatever honest per-item judgment produces — you are not aiming for a number.
|
|
20
|
+
|
|
21
|
+
## Input materials
|
|
22
|
+
|
|
23
|
+
- The full set of feedback items, listed separately — one row per point, not a single merged blob, because the method's whole value is a per-item decision.
|
|
24
|
+
- For each item: what was actually said, the source, and the stated reason if there is one, so you judge the substance instead of the loudest voice.
|
|
25
|
+
- The artifact or decision under revision and the bar it must meet, so each absorb/refine/reject call is measured against a real standard.
|
|
26
|
+
- Your own independent read on each item — this is a judgment ledger, not a poll; agreement among sources does not auto-win and a lone dissent is not auto-dismissed.
|
|
27
|
+
- An explicit reason attached to every reject and every partial-absorb, because an unexplained rejection is indistinguishable from defensiveness.
|
|
28
|
+
- A clear stance going in that the absorb/reject ratio is an outcome of honest judgment, not a quota — you are forbidden both from rejecting to look independent and from accepting to avoid friction.
|
|
29
|
+
|
|
30
|
+
## Process
|
|
31
|
+
|
|
32
|
+
1. List every feedback item separately before deciding anything. Resist forming one overall impression of 'the feedback' — the method only works if each point gets its own row and its own verdict.
|
|
33
|
+
2. Score each item into exactly one of five tiers, and write the reason. (1) ABSORB FULLY: the point is right and its scope is clear — take it as-is. (2) ABSORB AND REFINE: the direction is right but you add a more precise version — keep the intent, improve the execution, and note what you added. (3) ABSORB WITH A BOUNDARY: accept it, but bound where it applies, naming the cases it should and should not cover. (4) PARTLY ABSORB: take one part and set aside or defer the rest, splitting the item into what you took and what you did not. (5) REJECT: decline it, and give an independent reason, contrary evidence, or an alternative — a reject with no reason does not count.
|
|
34
|
+
3. Judge substance, not source weight or vote count. Three sources making the same weak point do not outvote one strong objection; a single sharp dissent can be the item you absorb fully while the majority note gets a boundary. The ledger records what is right, not what is popular.
|
|
35
|
+
4. Hold the two opposite disciplines at once. You may NOT reject a sound point just to look independent or to avoid feeling like a courier; and you may NOT absorb a weak point just to avoid friction or to be agreeable. Both are failures of judgment in opposite directions, and the stated reason on each row is what keeps you honest about which one you might be slipping into.
|
|
36
|
+
5. Treat the ratio as a readout, not a goal. After scoring, you can look at how much you absorbed versus refined, bounded, partly took, or rejected — but that distribution is the RESULT of judging each item honestly. Never nudge an individual call to make the overall ratio look more independent or more agreeable; the moment the ratio drives a row's verdict, the ledger is corrupted.
|
|
37
|
+
6. Record the ledger so the synthesis is auditable. Keep the per-item tier and reason, especially for every reject and partial-absorb, so a later reviewer (or your future self) can see that each point was weighed on its merits rather than waved through or swatted away.
|
|
38
|
+
|
|
39
|
+
## Output shape
|
|
40
|
+
|
|
41
|
+
- One row per feedback item — never a merged 'I considered all the feedback' summary.
|
|
42
|
+
- A single tier per row: absorb fully / absorb and refine / absorb with a boundary / partly absorb / reject.
|
|
43
|
+
- A stated reason on every row, and specifically an independent reason, contrary evidence, or alternative on every reject and partial-absorb.
|
|
44
|
+
- For refine rows, what you added beyond the original; for boundary rows, where it does and does not apply; for partial rows, what was taken and what was set aside.
|
|
45
|
+
- The resulting absorb/reject distribution shown as an outcome readout, with an explicit note that it was not a target.
|
|
46
|
+
- An auditable trail: enough that a later reader can see each point was judged on its merits, not by vote count or by source weight.
|
|
47
|
+
|
|
48
|
+
## Pass bar (what counts as done / safe to trust)
|
|
49
|
+
|
|
50
|
+
- Every feedback item has its own row and exactly one tier — nothing is merged into a single overall impression.
|
|
51
|
+
- Every reject and every partial-absorb carries an independent reason, contrary evidence, or a named alternative.
|
|
52
|
+
- Items were judged on substance, not on how many sources said them or how senior the source was.
|
|
53
|
+
- Neither failure direction is present: nothing was rejected merely to look independent, nothing absorbed merely to avoid friction.
|
|
54
|
+
- The absorb/reject ratio is presented as an outcome of the per-item calls, with no sign that any row was bent to make the ratio look a certain way.
|
|
55
|
+
- The ledger is auditable: a later reader can see each point was weighed, not waved through or swatted away.
|
|
56
|
+
|
|
57
|
+
## Reject bar (what sends it back)
|
|
58
|
+
|
|
59
|
+
- The feedback was accepted wholesale — 'all good points, I'll incorporate them' — with no per-item decision (the courier failure the ledger exists to prevent).
|
|
60
|
+
- A point was rejected with no reason, contrary evidence, or alternative, so it cannot be told apart from reflexive defensiveness.
|
|
61
|
+
- Decisions tracked vote count or source seniority instead of substance (the majority note won just for being the majority).
|
|
62
|
+
- An individual call was nudged to make the overall ratio look more independent or more agreeable — the ratio drove the verdict.
|
|
63
|
+
- Sound feedback was declined specifically to avoid feeling like a rubber stamp (independence theater), or weak feedback absorbed specifically to keep the peace.
|
|
64
|
+
- The items were blurred into one impression, so there is no auditable trail of which point got what verdict and why.
|
|
65
|
+
|
|
66
|
+
## Common misuse
|
|
67
|
+
|
|
68
|
+
- Collapsing the items into one 'I took the feedback on board' summary, which is exactly the rubber-stamp the ledger is built to stop.
|
|
69
|
+
- Setting a target ratio ('I should reject about a third to stay independent') and then bending individual calls to hit it — the ratio is an outcome, never a goal.
|
|
70
|
+
- Rejecting a sound point to perform independence, trading the courier failure for an equal-and-opposite defensiveness.
|
|
71
|
+
- Absorbing a weak point to avoid friction with the source, then backfilling a reason that does not really hold.
|
|
72
|
+
- Counting votes — letting three echoes of the same shallow note outweigh one strong objection because three feels like more.
|
|
73
|
+
- Leaving rejects and partials without a stated reason, so the synthesis cannot be audited and looks identical to swatting feedback away.
|
|
74
|
+
|
|
75
|
+
## Package files
|
|
76
|
+
|
|
77
|
+
- `README.md` explains the mechanism.
|
|
78
|
+
- `PROMPT.md` gives the copy-paste prompt.
|
|
79
|
+
- `TEMPLATE.md` gives the blank operating card.
|
|
80
|
+
- `EXAMPLE.synthetic.md` shows a public-safe run.
|
|
81
|
+
- `FAILURE_MODES.md` names common ways this mechanism fails.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Feedback Absorption Ledger Template
|
|
2
|
+
|
|
3
|
+
AI Collaboration Open System mechanism card. Fill this in a local-first workflow with public-safe or redacted material.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
Keep independent judgment alive when you are synthesizing feedback from several sources by scoring each incoming point across five tiers instead of silently rubber-stamping all of it: absorb fully, absorb and refine, absorb with a boundary, partly absorb, or reject with a reason. The trap this defends against is the controller who collects three reviews and quietly accepts everything, becoming a courier for other people's opinions; the equal-and-opposite trap is reflexively rejecting things to look independent. The ledger forces a per-item decision with a stated reason, and treats the absorb/reject ratio as an OUTCOME of honest judgment, never a target to hit.
|
|
8
|
+
|
|
9
|
+
## Template
|
|
10
|
+
|
|
11
|
+
### Artifact / decision under revision, and the bar it must meet:
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Feedback items, listed separately (one row each — do not merge):
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Item 1 — what was said / source / its reason:
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Item 1 — tier (absorb fully / refine / boundary / partly / reject) + your reason:
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### Item 2 — what was said / source / its reason:
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Item 2 — tier + your reason:
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
### (repeat one row per item — every reject and partial needs an independent reason, contrary evidence, or an alternative)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### Discipline check: did I reject anything just to look independent, or absorb anything just to avoid friction?
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
### Ratio readout (how much absorbed / refined / bounded / partly / rejected) — stated as an OUTCOME, not a target:
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
### Auditable note: the synthesis a later reviewer can trace back to per-item judgment:
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
## Pass bar (tick before you trust the result)
|
|
43
|
+
|
|
44
|
+
- Every feedback item has its own row and exactly one tier — nothing is merged into a single overall impression.
|
|
45
|
+
- Every reject and every partial-absorb carries an independent reason, contrary evidence, or a named alternative.
|
|
46
|
+
- Items were judged on substance, not on how many sources said them or how senior the source was.
|
|
47
|
+
- Neither failure direction is present: nothing was rejected merely to look independent, nothing absorbed merely to avoid friction.
|
|
48
|
+
- The absorb/reject ratio is presented as an outcome of the per-item calls, with no sign that any row was bent to make the ratio look a certain way.
|
|
49
|
+
- The ledger is auditable: a later reader can see each point was weighed, not waved through or swatted away.
|
|
50
|
+
|
|
51
|
+
## Reject bar (send it back if any of these is true)
|
|
52
|
+
|
|
53
|
+
- The feedback was accepted wholesale — 'all good points, I'll incorporate them' — with no per-item decision (the courier failure the ledger exists to prevent).
|
|
54
|
+
- A point was rejected with no reason, contrary evidence, or alternative, so it cannot be told apart from reflexive defensiveness.
|
|
55
|
+
- Decisions tracked vote count or source seniority instead of substance (the majority note won just for being the majority).
|
|
56
|
+
- An individual call was nudged to make the overall ratio look more independent or more agreeable — the ratio drove the verdict.
|
|
57
|
+
- Sound feedback was declined specifically to avoid feeling like a rubber stamp (independence theater), or weak feedback absorbed specifically to keep the peace.
|
|
58
|
+
- The items were blurred into one impression, so there is no auditable trail of which point got what verdict and why.
|
|
59
|
+
|
|
60
|
+
## Worked example
|
|
61
|
+
|
|
62
|
+
See `EXAMPLE.synthetic.md` for this same card filled out end to end on a public-safe synthetic task.
|
|
63
|
+
|
|
64
|
+
## Completion check
|
|
65
|
+
|
|
66
|
+
- The mechanism has a named trigger.
|
|
67
|
+
- The next action is concrete.
|
|
68
|
+
- Private details are redacted or rewritten as synthetic examples.
|
|
69
|
+
- The result can be handed to another AI tool without extra chat history.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Half-Product Review Synthetic Example
|
|
2
|
+
|
|
3
|
+
This is a public-safe synthetic example for the AI Collaboration Open System. It is local-first and contains no private account, customer, route, hook, or conversation material.
|
|
4
|
+
|
|
5
|
+
## Synthetic example
|
|
6
|
+
|
|
7
|
+
A README says complete OS, but the generated workspace lacks mechanism packages. Review label is candidate, not publishable, until init creates those files.
|
|
8
|
+
|
|
9
|
+
## How the mechanism changes the outcome
|
|
10
|
+
|
|
11
|
+
Without this mechanism, a single assistant can produce a smooth answer while hiding uncertainty. With this mechanism, the workflow records trigger, evidence, decision, residual risk, and next action.
|
|
12
|
+
|
|
13
|
+
## Reuse note
|
|
14
|
+
|
|
15
|
+
Copy the shape, not the synthetic facts. Adapt the template to your own redacted task.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Half-Product Review Failure Modes
|
|
2
|
+
|
|
3
|
+
AI Collaboration Open System failure checklist. Use it in a local-first workflow before trusting a mechanism run, and rewrite any public example into public-safe language.
|
|
4
|
+
|
|
5
|
+
## Failure modes
|
|
6
|
+
|
|
7
|
+
- Review accepts impressive documentation without running init.
|
|
8
|
+
- The release label hides what is still only a candidate.
|
|
9
|
+
- The reviewer checks only root docs and misses generated workspace drift.
|
|
10
|
+
|
|
11
|
+
## Guard questions
|
|
12
|
+
|
|
13
|
+
1. Did this mechanism change the decision, or just add ceremony?
|
|
14
|
+
2. Is any private material copied instead of summarized or synthesized?
|
|
15
|
+
3. Are blockers, residual risks, and next actions separated?
|
|
16
|
+
4. Could a new session continue from this file alone?
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Half-Product Review Prompt
|
|
2
|
+
|
|
3
|
+
This prompt belongs to the AI Collaboration Open System. Use it in a local-first workflow with public-safe or redacted material.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
Block confident claims when the project has docs, demos, or architecture but no runnable first experience.
|
|
8
|
+
|
|
9
|
+
## Copy-paste prompt
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
Use the Half-Product Review mechanism from my local AI Collaboration Open System workspace.
|
|
13
|
+
|
|
14
|
+
Purpose:
|
|
15
|
+
Block confident claims when the project has docs, demos, or architecture but no runnable first experience.
|
|
16
|
+
|
|
17
|
+
Trigger:
|
|
18
|
+
Use before release, README polish, launch copy, or any claim that a stranger can use the system.
|
|
19
|
+
|
|
20
|
+
Input:
|
|
21
|
+
[paste redacted task material, context package, and acceptance card here]
|
|
22
|
+
|
|
23
|
+
Process:
|
|
24
|
+
1. Inspect the first ten minutes as a user would experience them.
|
|
25
|
+
2. Check whether docs point to runnable artifacts.
|
|
26
|
+
3. Reject strategy prose that is not backed by files or commands.
|
|
27
|
+
4. List the smallest fixes required before public labeling.
|
|
28
|
+
|
|
29
|
+
Return:
|
|
30
|
+
- Decision-changing findings only
|
|
31
|
+
- Evidence used
|
|
32
|
+
- Required fixes
|
|
33
|
+
- Residual risk
|
|
34
|
+
- Next action
|
|
35
|
+
|
|
36
|
+
Rules:
|
|
37
|
+
- Work from provided material only.
|
|
38
|
+
- Keep private material local.
|
|
39
|
+
- Use public-safe synthetic wording for examples.
|
|
40
|
+
- Label assumptions and unverified claims.
|
|
41
|
+
```
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Half-Product Review
|
|
2
|
+
|
|
3
|
+
Part of the AI Collaboration Open System. This is a local-first, public-safe mechanism package you can copy into Claude Code, Codex, Cursor, Cline, Windsurf, or Copilot.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
Block confident claims when the project has docs, demos, or architecture but no runnable first experience.
|
|
8
|
+
|
|
9
|
+
## When to use
|
|
10
|
+
|
|
11
|
+
Use before release, README polish, launch copy, or any claim that a stranger can use the system.
|
|
12
|
+
|
|
13
|
+
## Input shape
|
|
14
|
+
|
|
15
|
+
README, START_HERE, CLI output, generated workspace, demo path, tests, and known gaps.
|
|
16
|
+
|
|
17
|
+
## Process
|
|
18
|
+
|
|
19
|
+
1. Inspect the first ten minutes as a user would experience them.
|
|
20
|
+
2. Check whether docs point to runnable artifacts.
|
|
21
|
+
3. Reject strategy prose that is not backed by files or commands.
|
|
22
|
+
4. List the smallest fixes required before public labeling.
|
|
23
|
+
|
|
24
|
+
## Package files
|
|
25
|
+
|
|
26
|
+
- `README.md` explains the mechanism.
|
|
27
|
+
- `PROMPT.md` gives the copy-paste prompt.
|
|
28
|
+
- `TEMPLATE.md` gives the blank operating card.
|
|
29
|
+
- `EXAMPLE.synthetic.md` shows a public-safe run.
|
|
30
|
+
- `FAILURE_MODES.md` names common ways this mechanism fails.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Half-Product Review Template
|
|
2
|
+
|
|
3
|
+
AI Collaboration Open System mechanism card. Fill this in a local-first workflow with public-safe or redacted material.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
Block confident claims when the project has docs, demos, or architecture but no runnable first experience.
|
|
8
|
+
|
|
9
|
+
## Template
|
|
10
|
+
|
|
11
|
+
### Claim under review:
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### First-run path:
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Runnable artifacts:
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Missing user proof:
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### Overclaim risk:
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Required fixes:
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
### Release label:
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
## Completion check
|
|
34
|
+
|
|
35
|
+
- The mechanism has a named trigger.
|
|
36
|
+
- The next action is concrete.
|
|
37
|
+
- Private details are redacted or rewritten as synthetic examples.
|
|
38
|
+
- The result can be handed to another AI tool without extra chat history.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Handoff A/B/C Synthetic Example
|
|
2
|
+
|
|
3
|
+
This is a public-safe synthetic example for the AI Collaboration Open System. It is local-first and contains no private account, customer, route, hook, or conversation material.
|
|
4
|
+
|
|
5
|
+
## Synthetic example
|
|
6
|
+
|
|
7
|
+
An A/B/C handoff: mode B (programmatic), current state says the feature is implemented and unit-tested, evidence is the passing test output, the blocker is an un-run package dry-run, the next concrete action is 'run the package dry-run against a temp cache before release labeling', and the baseline is the named commit — so a fresh executor continues without re-reading the chat.
|
|
8
|
+
|
|
9
|
+
## Full worked example (filled end to end)
|
|
10
|
+
|
|
11
|
+
Session 1 (a controller AI in one tool) gets a synthetic note app close to release but runs low on context before the final packaging check. Rather than dump the chat on whoever continues, it writes a Handoff A/B/C packet. Session 2 — a different AI tool entirely, with none of session 1's memory — reads the packet and picks up cleanly.
|
|
12
|
+
|
|
13
|
+
### Handoff mode + why
|
|
14
|
+
Mode B (programmatic). A defined, bounded task remains (one packaging check, then a release-label decision) and it will be handed to a separate executor that must run it on its own, so the packet is fully self-contained — not an A-style in-place resume.
|
|
15
|
+
|
|
16
|
+
### Current state (as fact)
|
|
17
|
+
- Done: the feature is implemented; the unit suite passes; a cross-family guard review accepted the completion claim after an earlier keyboard gap was fixed.
|
|
18
|
+
- In flight: nothing actively running.
|
|
19
|
+
- Not started: the package dry-run (pack the project in a temp directory and confirm every required file ships) and the final release-label decision that depends on it.
|
|
20
|
+
|
|
21
|
+
### Evidence behind each 'done'
|
|
22
|
+
- 'Unit suite passes' — evidence: the test command's output, all green, captured in the run log.
|
|
23
|
+
- 'Guard review accepted' — evidence: the recorded verdict from the binding cross-family pass, which named the earlier gap and then cleared it after the fix.
|
|
24
|
+
- 'Package dry-run' — NO evidence yet; it has not been run. Flagged so the receiver does not assume it.
|
|
25
|
+
|
|
26
|
+
### Blocker / waiting-on
|
|
27
|
+
Not blocked, but waiting on one thing before release labeling: the package dry-run has to run clean. The release label must stay 'candidate' until that output exists.
|
|
28
|
+
|
|
29
|
+
### Next concrete action
|
|
30
|
+
Run the package dry-run against a temp cache and confirm the file list contains every required file. If the list is complete, move the release label from 'candidate' to 'releasable'. If anything is missing, file it as the next fix and keep the label at 'candidate'.
|
|
31
|
+
|
|
32
|
+
### Baseline
|
|
33
|
+
Start from the named release-candidate commit on the release branch (the one whose log entry records the accepted guard review). Do not start from any local working copy that has uncommitted edits — pull the exact commit first, so the dry-run reflects what would actually ship.
|
|
34
|
+
|
|
35
|
+
### Stop condition
|
|
36
|
+
This handoff ends once the dry-run has run and the release label has been set accordingly. At that point the receiver owns the result; if the label moves to 'releasable', the next step is a separate release handoff, not a continuation of this one.
|
|
37
|
+
|
|
38
|
+
### What session 2 actually does first
|
|
39
|
+
Session 2 — a different tool with zero shared memory — reads the packet, checks out the named baseline commit (not its own stale copy), and runs exactly the one next action: the package dry-run against a temp cache. It never has to ask 'what was the background?' or 'where were we?' — the packet already answered both. The dry-run lists every required file, so session 2 flips the label to 'releasable' and writes a short follow-on note. The whole continuation cost the human zero re-explanation.
|
|
40
|
+
|
|
41
|
+
## How the mechanism changes the outcome
|
|
42
|
+
|
|
43
|
+
Without this mechanism, a single assistant can produce a smooth answer while hiding uncertainty. With this mechanism, the workflow records trigger, evidence, decision, residual risk, and next action.
|
|
44
|
+
|
|
45
|
+
## Reuse note
|
|
46
|
+
|
|
47
|
+
Copy the shape, not the synthetic facts. Adapt the template to your own redacted task.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Handoff A/B/C Failure Modes
|
|
2
|
+
|
|
3
|
+
AI Collaboration Open System failure checklist. Use it in a local-first workflow before trusting a mechanism run, and rewrite any public example into public-safe language.
|
|
4
|
+
|
|
5
|
+
## Failure modes
|
|
6
|
+
|
|
7
|
+
- The current-state block includes guesses dressed up as confirmed facts.
|
|
8
|
+
- The next-action section lists options but never marks the single first move.
|
|
9
|
+
- The baseline is omitted, so the receiver continues from the wrong version.
|
|
10
|
+
|
|
11
|
+
## Common misuse (operator errors that look fine but break the mechanism)
|
|
12
|
+
|
|
13
|
+
- Writing every handoff as a maximal B packet, including a two-line same-tool resume, so the heavy ceremony makes people stop writing handoffs at all.
|
|
14
|
+
- Letting the current-state block drift into wishful 'basically done' instead of fact, so the receiver trusts work that was never verified.
|
|
15
|
+
- Giving the state with no evidence and no 'unverified' label, so a guess gets inherited as a confirmed fact.
|
|
16
|
+
- Listing decision points and options but no single concrete next action, leaving the receiver to re-derive 'so what do I actually do first?'.
|
|
17
|
+
- Skipping the baseline because 'it's obvious', then a parallel edit or stale checkout makes the receiver continue on the wrong copy.
|
|
18
|
+
- Writing a packet that silently assumes the original chat history, so it only works for the same session it was meant to replace.
|
|
19
|
+
|
|
20
|
+
## Guard questions
|
|
21
|
+
|
|
22
|
+
1. Did this mechanism change the decision, or just add ceremony?
|
|
23
|
+
2. Is any private material copied instead of summarized or synthesized?
|
|
24
|
+
3. Are blockers, residual risks, and next actions separated?
|
|
25
|
+
4. Could a new session continue from this file alone?
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Handoff A/B/C Prompt
|
|
2
|
+
|
|
3
|
+
This prompt belongs to the AI Collaboration Open System. Use it in a local-first workflow with public-safe or redacted material.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
Externalize the current state into a structured handoff packet so ANY AI or session can pick up from where the work actually is, instead of the human re-explaining the background every time a tool or session changes. A/B/C are three handoff modes for three situations: A = high-interaction handoff (a human and AI trading turns inside the same tool, lightweight resume); B = programmatic handoff (a clear task an executor picks up and drives to completion on its own); C = delivery overview (a human-facing total account of what one phase produced). Whichever mode, the packet carries the same load-bearing fields so the receiver never starts from zero.
|
|
8
|
+
|
|
9
|
+
## Copy-paste prompt
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
Use the Handoff A/B/C mechanism from my local AI Collaboration Open System workspace.
|
|
13
|
+
|
|
14
|
+
Purpose:
|
|
15
|
+
Externalize the current state into a structured handoff packet so ANY AI or session can pick up from where the work actually is, instead of the human re-explaining the background every time a tool or session changes. A/B/C are three handoff modes for three situations: A = high-interaction handoff (a human and AI trading turns inside the same tool, lightweight resume); B = programmatic handoff (a clear task an executor picks up and drives to completion on its own); C = delivery overview (a human-facing total account of what one phase produced). Whichever mode, the packet carries the same load-bearing fields so the receiver never starts from zero.
|
|
16
|
+
|
|
17
|
+
Trigger:
|
|
18
|
+
Use whenever continuity is about to break or pass to someone else: a session stops with the work half-done, a different AI tool takes over, a long task crosses a natural seam, or a phase finishes and someone needs the result without reading the whole chat. Pick A for a same-tool resume, B for handing a defined task to an executor, C for reporting a finished phase to a human.
|
|
19
|
+
|
|
20
|
+
Do not use when:
|
|
21
|
+
Skip a full handoff packet for work that is not actually being passed on: a single self-contained reply you finish in the same turn, a throwaway exploration nobody will continue, or a trivial step where re-explaining the context would take less than writing the packet. A heavy handoff on work that never gets handed off is pure overhead, and overhead with no payoff trains people to skip the packet when a real handoff finally needs it.
|
|
22
|
+
|
|
23
|
+
Input:
|
|
24
|
+
[paste redacted task material, context package, and acceptance card here]
|
|
25
|
+
|
|
26
|
+
Process:
|
|
27
|
+
1. Pick the handoff mode first. A = high-interaction: a human and AI are mid-conversation in one tool and you just need a lightweight 'where we are' so the next turn continues cleanly. B = programmatic: you are handing a defined task to an executor (another tool or fresh session) that will run it to completion on its own, so the packet must be self-contained. C = delivery overview: a phase is finished and a human needs the total account, so the packet is a readable result summary, not a work ticket. The mode decides how much the packet carries.
|
|
28
|
+
2. Write the current state as fact, not optimism. Say what is actually done, what is in flight, and what has not started. Resist 'basically done' — if it is not verified, it is not done. This block is the whole point: it is what lets the receiver skip 're-explain the background'.
|
|
29
|
+
3. Attach the evidence for each claimed-done item: the test that passed, the command output, the reviewed artifact. Where there is no evidence yet, say so plainly. State without evidence is a guess wearing a fact's clothes.
|
|
30
|
+
4. Name the blocker or waiting-on, if any, and the single most concrete next action. The next action must be specific enough to act on immediately — 'run the package dry-run against a temp cache and check the file list', not 'continue the task'.
|
|
31
|
+
5. Pin the baseline: the exact commit / version / branch / state the receiver starts from. Without it, a parallel edit or a stale copy silently diverges and the handoff lands on the wrong work.
|
|
32
|
+
6. Hand off in the chosen mode and stop at the stated stop condition. For A, keep it short and resume in place. For B, the executor takes it and drives to completion. For C, the human reads the overview and decides. Do not pad an A resume into a full B packet, and do not shrink a B packet a stranger must run alone down to an A-sized note.
|
|
33
|
+
|
|
34
|
+
Output shape:
|
|
35
|
+
- Handoff mode: A (high-interaction resume) / B (programmatic task) / C (delivery overview), and one line on why that mode fits.
|
|
36
|
+
- Current state: what is done / in flight / not started, written as fact.
|
|
37
|
+
- Evidence: the proof behind each 'done', or an explicit 'no evidence yet'.
|
|
38
|
+
- Blocker / waiting-on: what is stopping progress, or 'none'.
|
|
39
|
+
- Next concrete action: the single specific first move the receiver should make.
|
|
40
|
+
- Baseline: the exact commit / version / branch / state to start from.
|
|
41
|
+
- Stop condition: where this handoff ends and the receiver takes over.
|
|
42
|
+
|
|
43
|
+
Return:
|
|
44
|
+
- Decision-changing findings only
|
|
45
|
+
- Evidence used
|
|
46
|
+
- Required fixes
|
|
47
|
+
- Residual risk
|
|
48
|
+
- Next action
|
|
49
|
+
|
|
50
|
+
Pass bar (do not pass unless all hold):
|
|
51
|
+
- The handoff mode (A / B / C) is named and fits the situation — a same-tool resume is not bloated into a full task packet, and a stranger-runnable task is not shrunk to a one-liner.
|
|
52
|
+
- The current state is written as fact, with no 'basically done' standing in for unverified work.
|
|
53
|
+
- Every claimed-done item has evidence attached, or is explicitly marked 'no evidence yet'.
|
|
54
|
+
- There is exactly one concrete next action the receiver can act on without asking what to do first.
|
|
55
|
+
- The baseline is pinned (commit / version / branch / state), so the receiver cannot pick up the wrong copy.
|
|
56
|
+
- A receiver with no access to the original chat could continue from this packet alone.
|
|
57
|
+
|
|
58
|
+
Reject bar (send back if any holds):
|
|
59
|
+
- No mode is chosen, so the packet is either too thin for a stranger to run or too heavy for a quick same-tool resume.
|
|
60
|
+
- The current state hides unverified work behind 'basically done' or 'almost there'.
|
|
61
|
+
- A 'done' claim has no evidence and is not marked as unverified — the receiver inherits a hidden gap.
|
|
62
|
+
- There is no concrete next action, or there are five vague ones and no single first move.
|
|
63
|
+
- The baseline is missing, so the receiver can silently start from the wrong version or a stale copy.
|
|
64
|
+
- The packet only makes sense to someone who already read the whole conversation, which defeats the purpose.
|
|
65
|
+
|
|
66
|
+
Rules:
|
|
67
|
+
- Work from provided material only.
|
|
68
|
+
- Keep private material local.
|
|
69
|
+
- Use public-safe synthetic wording for examples.
|
|
70
|
+
- Label assumptions and unverified claims.
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Full worked example
|
|
74
|
+
|
|
75
|
+
See `EXAMPLE.synthetic.md` for this prompt run from start to finish on a public-safe synthetic task.
|