From a3928187b91b16627441481d8e22100f3ec48570 Mon Sep 17 00:00:00 2001 From: Kyle Merritt Date: Wed, 4 Nov 2026 20:21:54 -0500 Subject: [PATCH 1/5] Add Issue Designer instruction packages --- README.md | 4 ++++ packages/designer-domain-modeling/SKILL.md | 12 ++++++++++++ .../designer-domain-modeling/relayview-skill.json | 15 +++++++++++++++ packages/designer-grilling/SKILL.md | 12 ++++++++++++ packages/designer-grilling/relayview-skill.json | 15 +++++++++++++++ packages/designer-prototype/SKILL.md | 12 ++++++++++++ packages/designer-prototype/relayview-skill.json | 15 +++++++++++++++ packages/designer-research/SKILL.md | 12 ++++++++++++ packages/designer-research/relayview-skill.json | 15 +++++++++++++++ packages/designer-to-spec/SKILL.md | 12 ++++++++++++ packages/designer-to-spec/relayview-skill.json | 15 +++++++++++++++ packages/designer-to-tickets/SKILL.md | 12 ++++++++++++ packages/designer-to-tickets/relayview-skill.json | 15 +++++++++++++++ packages/designer-triage/SKILL.md | 12 ++++++++++++ packages/designer-triage/relayview-skill.json | 15 +++++++++++++++ packages/designer-wayfinder/SKILL.md | 12 ++++++++++++ packages/designer-wayfinder/relayview-skill.json | 15 +++++++++++++++ packages/issue-designer-default/SKILL.md | 15 +++++++++++++++ .../issue-designer-default/relayview-skill.json | 15 +++++++++++++++ tests/test_packages.py | 6 +++++- tools/packages.py | 2 +- 21 files changed, 256 insertions(+), 2 deletions(-) create mode 100644 packages/designer-domain-modeling/SKILL.md create mode 100644 packages/designer-domain-modeling/relayview-skill.json create mode 100644 packages/designer-grilling/SKILL.md create mode 100644 packages/designer-grilling/relayview-skill.json create mode 100644 packages/designer-prototype/SKILL.md create mode 100644 packages/designer-prototype/relayview-skill.json create mode 100644 packages/designer-research/SKILL.md create mode 100644 packages/designer-research/relayview-skill.json create mode 100644 packages/designer-to-spec/SKILL.md create mode 100644 packages/designer-to-spec/relayview-skill.json create mode 100644 packages/designer-to-tickets/SKILL.md create mode 100644 packages/designer-to-tickets/relayview-skill.json create mode 100644 packages/designer-triage/SKILL.md create mode 100644 packages/designer-triage/relayview-skill.json create mode 100644 packages/designer-wayfinder/SKILL.md create mode 100644 packages/designer-wayfinder/relayview-skill.json create mode 100644 packages/issue-designer-default/SKILL.md create mode 100644 packages/issue-designer-default/relayview-skill.json diff --git a/README.md b/README.md index ae9ab4d..80ed251 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,10 @@ Public source for RelayView-maintained instruction-only role skills and an illus | --- | --- | --- | --- | | `packages/planner-scope` | Maintained default | Planner / planning | 0.2.0 | | `packages/implementer-handoff` | Maintained default | Implementer / implementation | 0.2.0 | +| `packages/issue-designer-default` | Maintained default | Designer / design | 0.6.0 | +| `packages/designer-wayfinder`, `designer-grilling`, `designer-prototype` | Optional manual guidance | Designer / design | 0.6.0 | +| `packages/designer-research`, `designer-domain-modeling`, `designer-triage` | Optional manual guidance | Designer / design | 0.6.0 | +| `packages/designer-to-spec`, `designer-to-tickets` | Optional manual guidance | Designer / design | 0.6.0 | | `packages/codebase-design` | Optional guidance | Planner / planning | 0.3.0 | | `packages/grill-me` | Optional guidance | Planner / planning | 0.3.0 | | `packages/grilling` | Optional guidance | Planner / planning | 0.3.0 | diff --git a/packages/designer-domain-modeling/SKILL.md b/packages/designer-domain-modeling/SKILL.md new file mode 100644 index 0000000..d8402b8 --- /dev/null +++ b/packages/designer-domain-modeling/SKILL.md @@ -0,0 +1,12 @@ +--- +name: designer-domain-modeling +description: Sharpen project terms, invariants, and boundaries for an issue draft. +disable-model-invocation: true +metadata: + relayview-display-name: Designer domain modeling + relayview-version: 0.6.0 +--- + +# Domain modeling + +Read the assigned project's current context and relevant authoritative contracts. Name concepts in the project's own vocabulary; identify identities, state transitions, invariants, and boundaries that the proposed work touches. Ask the Human when a term or invariant changes acceptance. Put the resulting definitions and open choices in the draft without claiming a repository document was edited. diff --git a/packages/designer-domain-modeling/relayview-skill.json b/packages/designer-domain-modeling/relayview-skill.json new file mode 100644 index 0000000..deaa1a8 --- /dev/null +++ b/packages/designer-domain-modeling/relayview-skill.json @@ -0,0 +1,15 @@ +{ + "schemaVersion": 1, + "source": { + "kind": "first-party", + "reference": "v0.6.0" + }, + "role": "designer", + "step": "design", + "files": [ + { + "path": "SKILL.md", + "sha256": "cfb72adc02cf0a488c341d965c16e22d22e90c52ab0540a9072b09c592d1abd7" + } + ] +} diff --git a/packages/designer-grilling/SKILL.md b/packages/designer-grilling/SKILL.md new file mode 100644 index 0000000..b6fefa8 --- /dev/null +++ b/packages/designer-grilling/SKILL.md @@ -0,0 +1,12 @@ +--- +name: designer-grilling +description: Stress test one proposed issue design through focused Human questions. +disable-model-invocation: true +metadata: + relayview-display-name: Designer grilling + relayview-version: 0.6.0 +--- + +# Grilling + +State the design and scope to be challenged and seek the Human's agreement before entering this method. Probe one consequential assumption at a time: behavior, boundary, dependency, failure, or verification. Use each answer to choose the next question. Stop when the important branches are resolved or explicitly left open; summarize the agreed design and open decisions in the draft. diff --git a/packages/designer-grilling/relayview-skill.json b/packages/designer-grilling/relayview-skill.json new file mode 100644 index 0000000..fa90cae --- /dev/null +++ b/packages/designer-grilling/relayview-skill.json @@ -0,0 +1,15 @@ +{ + "schemaVersion": 1, + "source": { + "kind": "first-party", + "reference": "v0.6.0" + }, + "role": "designer", + "step": "design", + "files": [ + { + "path": "SKILL.md", + "sha256": "431da86a21da7b74fa55bce36c1e0fc806d066cd8b1ace7a784e1eb4a2db4a89" + } + ] +} diff --git a/packages/designer-prototype/SKILL.md b/packages/designer-prototype/SKILL.md new file mode 100644 index 0000000..3f5647c --- /dev/null +++ b/packages/designer-prototype/SKILL.md @@ -0,0 +1,12 @@ +--- +name: designer-prototype +description: Plan a bounded throwaway prototype to answer a design question. +disable-model-invocation: true +metadata: + relayview-display-name: Designer prototype + relayview-version: 0.6.0 +--- + +# Prototype + +Propose the exact question, bounded code or data scope, expected preview or data effects, and limits to the Human before entering this method. Use only owner-admitted prototype controls after agreement. Treat observations as evidence about the question, not production behavior. Record what was tried, observed, and still uncertain; keep throwaway changes out of the issue's implementation claim. diff --git a/packages/designer-prototype/relayview-skill.json b/packages/designer-prototype/relayview-skill.json new file mode 100644 index 0000000..8c1d54f --- /dev/null +++ b/packages/designer-prototype/relayview-skill.json @@ -0,0 +1,15 @@ +{ + "schemaVersion": 1, + "source": { + "kind": "first-party", + "reference": "v0.6.0" + }, + "role": "designer", + "step": "design", + "files": [ + { + "path": "SKILL.md", + "sha256": "3898ccf2566614ac3fc54afadd857ebd1e61701d0fe1344b92f79f6b01278706" + } + ] +} diff --git a/packages/designer-research/SKILL.md b/packages/designer-research/SKILL.md new file mode 100644 index 0000000..86bb725 --- /dev/null +++ b/packages/designer-research/SKILL.md @@ -0,0 +1,12 @@ +--- +name: designer-research +description: Research a design question using admitted repository, tracker, and public sources. +disable-model-invocation: true +metadata: + relayview-display-name: Designer research + relayview-version: 0.6.0 +--- + +# Research + +Frame the question and the decision it informs. Prefer current primary sources and the assigned repository's authoritative documents. Use only the owner's assigned repository, tracker, and brokered public research tools and active request budget. For each conclusion, keep source, observation time, and completeness visible. Distinguish a source statement from your inference and record material gaps in the draft. diff --git a/packages/designer-research/relayview-skill.json b/packages/designer-research/relayview-skill.json new file mode 100644 index 0000000..404793b --- /dev/null +++ b/packages/designer-research/relayview-skill.json @@ -0,0 +1,15 @@ +{ + "schemaVersion": 1, + "source": { + "kind": "first-party", + "reference": "v0.6.0" + }, + "role": "designer", + "step": "design", + "files": [ + { + "path": "SKILL.md", + "sha256": "676c4291d4bab19c76c0d945eefe21aa6787783e4e2d2285e0d6e270303d1e94" + } + ] +} diff --git a/packages/designer-to-spec/SKILL.md b/packages/designer-to-spec/SKILL.md new file mode 100644 index 0000000..cebdd3f --- /dev/null +++ b/packages/designer-to-spec/SKILL.md @@ -0,0 +1,12 @@ +--- +name: designer-to-spec +description: Turn an agreed problem into a complete reviewable issue specification. +disable-model-invocation: true +metadata: + relayview-display-name: Designer to spec + relayview-version: 0.6.0 +--- + +# To spec + +Use the agreed problem and observed project contracts to draft an outcome, scope boundaries, acceptance observations, failure and recovery behavior, and open decisions. Check prerequisites against the assigned tracker and mark uncertain links as proposed. Save the complete text through the owner-stored draft. The Human decides readiness and publication. diff --git a/packages/designer-to-spec/relayview-skill.json b/packages/designer-to-spec/relayview-skill.json new file mode 100644 index 0000000..71d968d --- /dev/null +++ b/packages/designer-to-spec/relayview-skill.json @@ -0,0 +1,15 @@ +{ + "schemaVersion": 1, + "source": { + "kind": "first-party", + "reference": "v0.6.0" + }, + "role": "designer", + "step": "design", + "files": [ + { + "path": "SKILL.md", + "sha256": "c4b8707f88faf1b9f3e04bb707b45bbb3d89848a8a3b2ac807dc819e8dd29f91" + } + ] +} diff --git a/packages/designer-to-tickets/SKILL.md b/packages/designer-to-tickets/SKILL.md new file mode 100644 index 0000000..d8858b7 --- /dev/null +++ b/packages/designer-to-tickets/SKILL.md @@ -0,0 +1,12 @@ +--- +name: designer-to-tickets +description: Decompose an agreed specification into ordered issue proposals. +disable-model-invocation: true +metadata: + relayview-display-name: Designer to tickets + relayview-version: 0.6.0 +--- + +# To tickets + +Choose independently reviewable slices with observable outcomes and prerequisite edges only where one slice truly requires another. For each proposed issue, state scope, acceptance, verification, and context a cold-start agent needs. Present the ordered set and relationship rationale to the Human. Keep proposals private until Human review and owner publication. diff --git a/packages/designer-to-tickets/relayview-skill.json b/packages/designer-to-tickets/relayview-skill.json new file mode 100644 index 0000000..bfa6f14 --- /dev/null +++ b/packages/designer-to-tickets/relayview-skill.json @@ -0,0 +1,15 @@ +{ + "schemaVersion": 1, + "source": { + "kind": "first-party", + "reference": "v0.6.0" + }, + "role": "designer", + "step": "design", + "files": [ + { + "path": "SKILL.md", + "sha256": "561db3543cfdffe55b8002954d7debcf9d0fc1125d51c688a74cf2469d3d73a1" + } + ] +} diff --git a/packages/designer-triage/SKILL.md b/packages/designer-triage/SKILL.md new file mode 100644 index 0000000..f2a9f07 --- /dev/null +++ b/packages/designer-triage/SKILL.md @@ -0,0 +1,12 @@ +--- +name: designer-triage +description: Classify and route an observed issue before drafting work. +disable-model-invocation: true +metadata: + relayview-display-name: Designer triage + relayview-version: 0.6.0 +--- + +# Triage + +Observe the current report and related tracker state. Separate verified symptoms, missing information, proposed behavior, and duplicate or prerequisite work. Suggest the smallest useful next state and explain the evidence for it. Draft an issue or question for Human review; only owner controls can change tracker status or placement. diff --git a/packages/designer-triage/relayview-skill.json b/packages/designer-triage/relayview-skill.json new file mode 100644 index 0000000..faff135 --- /dev/null +++ b/packages/designer-triage/relayview-skill.json @@ -0,0 +1,15 @@ +{ + "schemaVersion": 1, + "source": { + "kind": "first-party", + "reference": "v0.6.0" + }, + "role": "designer", + "step": "design", + "files": [ + { + "path": "SKILL.md", + "sha256": "fa62a0806921d87ddd27e494cfc379513cc147ad658eb5a2981970ccb25babf5" + } + ] +} diff --git a/packages/designer-wayfinder/SKILL.md b/packages/designer-wayfinder/SKILL.md new file mode 100644 index 0000000..0e817a6 --- /dev/null +++ b/packages/designer-wayfinder/SKILL.md @@ -0,0 +1,12 @@ +--- +name: designer-wayfinder +description: Map an uncertain design decision into options and a Human choice. +disable-model-invocation: true +metadata: + relayview-display-name: Designer Wayfinder + relayview-version: 0.6.0 +--- + +# Wayfinder + +Use this method for a decision whose alternatives materially change the work. First describe the decision, why it matters, and the bounded scope to the Human; enter the method only after the Human agrees. Observe current facts, list viable options with consequences and reversibility, and ask the smallest question that separates them. Record the Human's decision and remaining uncertainty in the owner-stored draft when relevant. This is decision work, not a ready implementation claim. diff --git a/packages/designer-wayfinder/relayview-skill.json b/packages/designer-wayfinder/relayview-skill.json new file mode 100644 index 0000000..fbffaea --- /dev/null +++ b/packages/designer-wayfinder/relayview-skill.json @@ -0,0 +1,15 @@ +{ + "schemaVersion": 1, + "source": { + "kind": "first-party", + "reference": "v0.6.0" + }, + "role": "designer", + "step": "design", + "files": [ + { + "path": "SKILL.md", + "sha256": "c5b5db0755af497cfe9be9fee9912f1406fb3b8546d7f389998516ba298f27b0" + } + ] +} diff --git a/packages/issue-designer-default/SKILL.md b/packages/issue-designer-default/SKILL.md new file mode 100644 index 0000000..8814e0b --- /dev/null +++ b/packages/issue-designer-default/SKILL.md @@ -0,0 +1,15 @@ +--- +name: issue-designer-default +description: Guide ordinary Issue Designer Chats from observed facts to a reviewable draft. +metadata: + relayview-display-name: Issue Designer default + relayview-version: 0.6.0 +--- + +# Issue Designer default + +Check current facts before drafting. Read the assigned repository's relevant authoritative documentation, code, tests, and tracker observations; state the source, observation time, and any incomplete read. Keep proposed behavior separate from verified current behavior. + +Choose the scale with the Human: one issue for bounded work, an ordered issue set for dependent work, or a narrower question when the outcome is unclear. Ask only for decisions that change scope, acceptance, or authority. A useful draft states the problem, observable outcome, boundaries, prerequisites, and verification including failure behavior. Preserve unresolved choices explicitly. + +Use the owner-stored draft for the current issue. Before calling it ready, check that a new agent can start from the draft and available repository context without this Chat: dependencies and acceptance observations are named, assumptions are visible, and the proposed readiness matches the remaining uncertainty. The Human reviews and publishes through owner controls. diff --git a/packages/issue-designer-default/relayview-skill.json b/packages/issue-designer-default/relayview-skill.json new file mode 100644 index 0000000..5dd639c --- /dev/null +++ b/packages/issue-designer-default/relayview-skill.json @@ -0,0 +1,15 @@ +{ + "schemaVersion": 1, + "source": { + "kind": "first-party", + "reference": "v0.6.0" + }, + "role": "designer", + "step": "design", + "files": [ + { + "path": "SKILL.md", + "sha256": "5e5b407b8390edc24f365e509e1da607bdbed918ffed07f4b2c03eb6bc0d8e80" + } + ] +} diff --git a/tests/test_packages.py b/tests/test_packages.py index e3dcb8d..584e162 100644 --- a/tests/test_packages.py +++ b/tests/test_packages.py @@ -39,7 +39,11 @@ class PackageTests(unittest.TestCase): "code-review": ("reviewer", "review"), "c4-diff": ("reviewer", "review"), "research": ("planner", "planning"), - "improve-codebase-architecture": ("planner", "planning")} + "improve-codebase-architecture": ("planner", "planning"), + **{name: ("designer", "design") for name in ( + "issue-designer-default", "designer-wayfinder", "designer-grilling", "designer-prototype", + "designer-research", "designer-domain-modeling", "designer-triage", + "designer-to-spec", "designer-to-tickets")}} for name, role_step in expected.items(): with self.subTest(name=name): package = ROOT / "packages" / name diff --git a/tools/packages.py b/tools/packages.py index fc42c7c..8ee40ce 100644 --- a/tools/packages.py +++ b/tools/packages.py @@ -51,7 +51,7 @@ def check_package(path): _fail(f"{path}: invalid source") if source["kind"] not in ("first-party", "user") or not isinstance(source["reference"], str) or not re.fullmatch(r"[A-Za-z0-9._:-]{1,128}", source["reference"]): _fail(f"{path}: invalid source identity") - if manifest["schemaVersion"] != 1 or (manifest["role"], manifest["step"]) not in (("planner", "planning"), ("implementer", "implementation"), ("reviewer", "review")): + if manifest["schemaVersion"] != 1 or (manifest["role"], manifest["step"]) not in (("planner", "planning"), ("implementer", "implementation"), ("reviewer", "review"), ("designer", "design")): _fail(f"{path}: incompatible role or step") files = manifest["files"] if not isinstance(files, list) or not 1 <= len(files) <= 16: From e472e1bd55d632f5a908d0b81bb342c46dda4d89 Mon Sep 17 00:00:00 2001 From: Kyle Merritt Date: Wed, 4 Nov 2026 20:36:22 -0500 Subject: [PATCH 2/5] Clarify Issue Designer default in skills source --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 80ed251..7374513 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ Public source for RelayView-maintained instruction-only role skills and an illus | `packages/c4-diff` | Optional guidance | Reviewer / review | 0.3.0 | | `examples/starter-planner` | Illustrative starter; not a production default | Planner / planning | 0.1.0 | -Only named releases of maintained packages receive RelayView compatibility testing and maintenance. Optional guidance requires explicit role assignment; the two original defaults remain available. User forks are maintained by their publishers. This release uses the instruction package schema version 1 admitted by RelayView's Community MVP. It contains only `SKILL.md`, declared `.md`/`.txt` resources, and `relayview-skill.json` within each package. Scripts, executable files, undeclared files, and requested permissions fail checks and owner admission. There is no fixed release calendar: maintained packages are versioned when their content or compatibility changes. A breaking owner contract requires a new compatible maintained release before the product depends on it. +Only named releases of maintained packages receive RelayView compatibility testing and maintenance. Optional guidance requires explicit role assignment; the Planner and Implementer defaults remain available alongside the pinned Issue Designer default. User forks are maintained by their publishers. This release uses the instruction package schema version 1 admitted by RelayView's Community MVP. It contains only `SKILL.md`, declared `.md`/`.txt` resources, and `relayview-skill.json` within each package. Scripts, executable files, undeclared files, and requested permissions fail checks and owner admission. There is no fixed release calendar: maintained packages are versioned when their content or compatibility changes. A breaking owner contract requires a new compatible maintained release before the product depends on it. ## A named set in RelayView From aac3dd3680831d6622e2e0a1ce1e4824c34084e0 Mon Sep 17 00:00:00 2001 From: Kyle Merritt Date: Thu, 5 Nov 2026 07:31:45 -0500 Subject: [PATCH 3/5] Clarify Designer assignment and lock release modes --- README.md | 4 ++-- tests/test_packages.py | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7374513..57ff70f 100644 --- a/README.md +++ b/README.md @@ -66,9 +66,9 @@ python -m tools.packages pack examples/starter-planner dist/starter-planner.zip Replace `examples/starter-planner` in the last two commands with your package directory. The `pack` command writes a reproducible ZIP containing the package, `LICENSE`, and `NOTICE.md`, then prints its SHA-256. The check returns the owner's package identity digest. Both use only Python 3's standard library and this repository's source. Preserve the license and notice when redistributing the package or fork. -To use a user fork, place its closed package directory under the owner's configured trusted root and use Settings → Skills to import the relative `SKILL.md` path under a new unique ID. Import validates and records the package; it does not assign it. Add that ID to a role-compatible named set in the owner configuration and restart the owner to load the set. Then select the set for the matching role in Settings → Skills and save. That selection takes effect for future sessions immediately; existing sessions retain their captured bytes. The Settings catalog displays source, version, digest, role, step, and pending versus effective assignment. The owner's admission remains authoritative even when these local checks pass. +To use a user fork, place its closed package directory under the owner's configured trusted root and use Settings → Skills to import the relative `SKILL.md` path under a new unique ID. Import validates and records the package; it does not assign it. For Planner, Implementer, or Reviewer guidance, add that ID to a role-compatible named set in the owner configuration and restart the owner to load the set. Then select the set for the matching role in Settings → Skills and save. For an optional Designer method, list its admitted ID in `workflowPresets.designerSkills` and reload the owner configuration; Designer has no Settings set selector. These assignments affect future sessions; existing sessions retain their captured bytes. The Settings catalog displays source, version, digest, role, step, and pending versus effective assignment. The owner's admission remains authoritative even when these local checks pass. -To use a maintained default, copy its release package under the same trusted root, admit its `SKILL.md` through the owner catalog, then select it for its declared role in Settings. Settings import accepts user-source packages; configure first-party packages in the owner catalog. Select a fork with `source.kind: user` and a distinct ID to replace that role's future assignment. Planner guidance uses existing read and planning tools; Implementer guidance uses existing implementation and reporting tools. Neither selection changes a role's tools, credentials, lifecycle stages, validation requirements, Gitea effects, review, merge, or Human acceptance. The owner keeps the existing Gitea task workflow. +To use a maintained Planner or Implementer default, copy its release package under the same trusted root, admit its `SKILL.md` through the owner catalog, then select it for its declared role in Settings. Settings import accepts user-source packages; configure first-party packages in the owner catalog. Select a fork with `source.kind: user` and a distinct ID to replace a Planner or Implementer future assignment. RelayView pins and assigns the Issue Designer default automatically; its optional methods use `workflowPresets.designerSkills`. Planner guidance uses existing read and planning tools; Implementer guidance uses existing implementation and reporting tools. Guidance selection does not change a role's tools, credentials, lifecycle stages, validation requirements, Gitea effects, review, merge, or Human acceptance. The owner keeps the existing Gitea task workflow. ## Release identity diff --git a/tests/test_packages.py b/tests/test_packages.py index 584e162..0a5b2a3 100644 --- a/tests/test_packages.py +++ b/tests/test_packages.py @@ -12,6 +12,24 @@ ROOT = Path(__file__).resolve().parents[1] class PackageTests(unittest.TestCase): + def test_designer_release_modes_and_source(self): + automatic = "issue-designer-default" + manual = ( + "designer-wayfinder", "designer-grilling", "designer-prototype", + "designer-research", "designer-domain-modeling", "designer-triage", + "designer-to-spec", "designer-to-tickets", + ) + for name in (automatic, *manual): + with self.subTest(name=name): + package = ROOT / "packages" / name + skill = (package / "SKILL.md").read_text() + frontmatter = skill.split("---", 2)[1] + self.assertEqual("disable-model-invocation: true" in frontmatter, name in manual) + self.assertIn("relayview-version: 0.6.0", frontmatter) + manifest = json.loads((package / "relayview-skill.json").read_text()) + self.assertEqual(manifest["source"], {"kind": "first-party", "reference": "v0.6.0"}) + check_package(package) + def test_tdd_is_available_to_owner_started_implementers(self): package = ROOT / "packages/tdd-auto" skill = (package / "SKILL.md").read_text() From 6c91398bdb09028513587c478dc14962e35b949d Mon Sep 17 00:00:00 2001 From: Kyle Merritt Date: Thu, 5 Nov 2026 07:34:44 -0500 Subject: [PATCH 4/5] Document Designer fork catalog assignment --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 57ff70f..891a615 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ python -m tools.packages pack examples/starter-planner dist/starter-planner.zip Replace `examples/starter-planner` in the last two commands with your package directory. The `pack` command writes a reproducible ZIP containing the package, `LICENSE`, and `NOTICE.md`, then prints its SHA-256. The check returns the owner's package identity digest. Both use only Python 3's standard library and this repository's source. Preserve the license and notice when redistributing the package or fork. -To use a user fork, place its closed package directory under the owner's configured trusted root and use Settings → Skills to import the relative `SKILL.md` path under a new unique ID. Import validates and records the package; it does not assign it. For Planner, Implementer, or Reviewer guidance, add that ID to a role-compatible named set in the owner configuration and restart the owner to load the set. Then select the set for the matching role in Settings → Skills and save. For an optional Designer method, list its admitted ID in `workflowPresets.designerSkills` and reload the owner configuration; Designer has no Settings set selector. These assignments affect future sessions; existing sessions retain their captured bytes. The Settings catalog displays source, version, digest, role, step, and pending versus effective assignment. The owner's admission remains authoritative even when these local checks pass. +To use a user fork, place its closed package directory under the owner's configured trusted root. For Planner, Implementer, or Reviewer guidance, use Settings → Skills to import the relative `SKILL.md` path under a new unique ID. Import validates and records the package; it does not assign it. Add that ID to a role-compatible named set in the owner configuration and restart the owner to load the set. Then select the set for the matching role in Settings → Skills and save. For an optional Designer method, declare its ID and relative `SKILL.md` path in `trustedSkills.catalog`, list the ID in `workflowPresets.designerSkills`, and restart the owner. Designer has no Settings import or set selector for this assignment. These assignments affect future sessions; existing sessions retain their captured bytes. The owner's admission remains authoritative even when these local checks pass. To use a maintained Planner or Implementer default, copy its release package under the same trusted root, admit its `SKILL.md` through the owner catalog, then select it for its declared role in Settings. Settings import accepts user-source packages; configure first-party packages in the owner catalog. Select a fork with `source.kind: user` and a distinct ID to replace a Planner or Implementer future assignment. RelayView pins and assigns the Issue Designer default automatically; its optional methods use `workflowPresets.designerSkills`. Planner guidance uses existing read and planning tools; Implementer guidance uses existing implementation and reporting tools. Guidance selection does not change a role's tools, credentials, lifecycle stages, validation requirements, Gitea effects, review, merge, or Human acceptance. The owner keeps the existing Gitea task workflow. From 4d91ea466597eef49a5eb0a6220fbdccf3a46ba4 Mon Sep 17 00:00:00 2001 From: Kyle Merritt Date: Thu, 5 Nov 2026 07:36:16 -0500 Subject: [PATCH 5/5] Update maintained defaults description --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 891a615..23f37e2 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ The screenshot's ordered manual members come from this excerpt under `trustedSki members: [code-review, c4-diff] ``` -The two maintained defaults are original RelayView packages. Some optional guidance adapts earlier MIT-licensed skills; see the [third-party notices](NOTICE.md). +The maintained defaults are original RelayView packages. Some optional guidance adapts earlier MIT-licensed skills; see the [third-party notices](NOTICE.md). ## Fork the starter