Correct release verification and document claim schema
This commit is contained in:
1 parent
2d7bf2404a
commit
64164444e6
4 files changed
+28
-6
No files matched your search
@@ -7,7 +7,7 @@ Public source for RelayView-maintained instruction-only role skills and an illus
|
|||||||
| Directory | Status | Role / step | Version |
|
| Directory | Status | Role / step | Version |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
| `packages/{planner,implementer,reviewer}-investigation` | Maintained automatic guidance | One matching role / step each | 0.7.0 |
|
| `packages/{planner,implementer,reviewer}-investigation` | Maintained automatic guidance | One matching role / step each | 0.7.0 |
|
||||||
| `packages/planner-scope` | Maintained default | Planner / planning | 0.8.0 |
|
| `packages/planner-scope` | Maintained default | Planner / planning | 0.8.1 |
|
||||||
| `packages/implementer-handoff` | Maintained default | Implementer / implementation | 0.2.0 |
|
| `packages/implementer-handoff` | Maintained default | Implementer / implementation | 0.2.0 |
|
||||||
| `packages/issue-designer-default` | Maintained default | Designer / design | 0.6.1 |
|
| `packages/issue-designer-default` | Maintained default | Designer / design | 0.6.1 |
|
||||||
| `packages/designer-wayfinder`, `designer-grilling` | Optional manual guidance | Designer / design | 0.6.0 |
|
| `packages/designer-wayfinder`, `designer-grilling` | Optional manual guidance | Designer / design | 0.6.0 |
|
||||||
@@ -35,7 +35,7 @@ Public source for RelayView-maintained instruction-only role skills and an illus
|
|||||||
| `packages/c4-diff` | Optional guidance | Reviewer / review | 0.3.0 |
|
| `packages/c4-diff` | Optional guidance | Reviewer / review | 0.3.0 |
|
||||||
| `examples/starter-planner` | Illustrative starter; not a production default | Planner / planning | 0.1.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 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.
|
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. Instruction packages use schema version 1, or schema version 2 for a Planner package declaring owner-validated `issueClaim` metadata. Schema 2 accepts a nullable target status label; the owner enforces the claim transition after proved implementation handoff. 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
|
## A named set in RelayView
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ name: planner-scope
|
|||||||
description: Check assigned issue scope, neighboring work, and verification before drafting a Plan.
|
description: Check assigned issue scope, neighboring work, and verification before drafting a Plan.
|
||||||
metadata:
|
metadata:
|
||||||
relayview-display-name: Planner scope
|
relayview-display-name: Planner scope
|
||||||
relayview-version: 0.8.0
|
relayview-version: 0.8.1
|
||||||
---
|
---
|
||||||
|
|
||||||
# Planner scope
|
# Planner scope
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"schemaVersion": 2,
|
"schemaVersion": 2,
|
||||||
"source": {
|
"source": {
|
||||||
"kind": "first-party",
|
"kind": "first-party",
|
||||||
"reference": "v0.8.0"
|
"reference": "v0.8.1"
|
||||||
},
|
},
|
||||||
"role": "planner",
|
"role": "planner",
|
||||||
"step": "planning",
|
"step": "planning",
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
"files": [
|
"files": [
|
||||||
{
|
{
|
||||||
"path": "SKILL.md",
|
"path": "SKILL.md",
|
||||||
"sha256": "7dbd2ace7472a75c69b70ea118333429dfc7d56e5374454724805aa783cc0112"
|
"sha256": "94119fd02a634007f44c227e523802d8f8a7249a97a5526b888d8739401645a2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "scope.md",
|
"path": "scope.md",
|
||||||
|
|||||||
+23
-1
@@ -12,6 +12,28 @@ ROOT = Path(__file__).resolve().parents[1]
|
|||||||
|
|
||||||
|
|
||||||
class PackageTests(unittest.TestCase):
|
class PackageTests(unittest.TestCase):
|
||||||
|
def test_schema_two_claim_policy_bounds(self):
|
||||||
|
with tempfile.TemporaryDirectory() as directory:
|
||||||
|
package = Path(directory) / "planner-scope"
|
||||||
|
shutil.copytree(ROOT / "packages/planner-scope", package)
|
||||||
|
sidecar = package / "relayview-skill.json"
|
||||||
|
original = json.loads(sidecar.read_text())
|
||||||
|
for label in (None, "status/review"):
|
||||||
|
manifest = dict(original, issueClaim={"statusLabel": label})
|
||||||
|
sidecar.write_text(json.dumps(manifest))
|
||||||
|
check_package(package)
|
||||||
|
for claim in ({}, [], {"statusLabel": "status/ready-for-agent"},
|
||||||
|
{"statusLabel": 42}, {"statusLabel": "review"},
|
||||||
|
{"statusLabel": None, "extra": True}):
|
||||||
|
with self.subTest(claim=claim):
|
||||||
|
sidecar.write_text(json.dumps(dict(original, issueClaim=claim)))
|
||||||
|
with self.assertRaises(PackageError):
|
||||||
|
check_package(package)
|
||||||
|
for role, step in (("implementer", "implementation"), ("reviewer", "review"), ("designer", "design")):
|
||||||
|
sidecar.write_text(json.dumps(dict(original, role=role, step=step)))
|
||||||
|
with self.assertRaises(PackageError):
|
||||||
|
check_package(package)
|
||||||
|
|
||||||
def test_planner_scope_presentation_and_claim(self):
|
def test_planner_scope_presentation_and_claim(self):
|
||||||
package = ROOT / "packages/planner-scope"
|
package = ROOT / "packages/planner-scope"
|
||||||
check_package(package)
|
check_package(package)
|
||||||
@@ -113,7 +135,7 @@ class PackageTests(unittest.TestCase):
|
|||||||
package = ROOT / "packages" / name
|
package = ROOT / "packages" / name
|
||||||
manifest = json.loads((package / "relayview-skill.json").read_text())
|
manifest = json.loads((package / "relayview-skill.json").read_text())
|
||||||
self.assertEqual((manifest["role"], manifest["step"]), (role, step))
|
self.assertEqual((manifest["role"], manifest["step"]), (role, step))
|
||||||
self.assertEqual(manifest["source"], {"kind": "first-party", "reference": "v0.8.0" if name == "planner-scope" else "v0.2.0"})
|
self.assertEqual(manifest["source"], {"kind": "first-party", "reference": "v0.8.1" if name == "planner-scope" else "v0.2.0"})
|
||||||
self.assertIn(resource, [item["path"] for item in manifest["files"]])
|
self.assertIn(resource, [item["path"] for item in manifest["files"]])
|
||||||
self.assertIn(marker, (package / "SKILL.md").read_text() + (package / resource).read_text())
|
self.assertIn(marker, (package / "SKILL.md").read_text() + (package / resource).read_text())
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user