Skip to content

Commit 5972b1f

Browse files
committed
feat: add challenger workflow governance
1 parent d54d148 commit 5972b1f

8 files changed

Lines changed: 619 additions & 17 deletions

File tree

.github/ISSUE_TEMPLATE/skill_submission.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,15 @@ body:
5252
id: nearest_existing
5353
attributes:
5454
label: Nearest existing canonical skill
55-
description: Name the closest current skill, if any.
55+
description: Required unless this is a new family candidate.
5656
placeholder: systematic-debugging
57-
validations:
57+
validations:
5858
required: false
5959
- type: textarea
6060
id: evidence
6161
attributes:
6262
label: Evidence
63-
description: Explain why this is worth curating and what proof supports it.
63+
description: Required for challenger-style review. Explain why this is worth curating and what proof supports it.
6464
placeholder: Real task evidence, eval notes, overlap analysis...
6565
validations:
6666
required: true

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ python scripts/build_catalog.py --check
5858
- Lifecycle stage is tracked separately from trust level.
5959
- The canonical registry is optimized for one primary skill per capability family.
6060
- Drafts and challengers may exist, but canonical duplicates should not.
61+
- Family-level catalog data tracks the current canon plus any challengers under review.
6162

6263
- `UNTRUSTED`: local drafts in agent environments, not curated here yet
6364
- `PROBATION`: proposed in an open PR or being prepared for review
@@ -87,6 +88,7 @@ This repository primarily stores curated `TRUSTED` skills plus the automation ne
8788
- Structural validation, catalog freshness, tests, provenance review, and human curation remain required for merge.
8889
- Agent-generated skills should be treated as draft proposals until they clear review, even if they include an attestation.
8990
- `REGISTRY.json` is the source of truth for lifecycle stage, trust level, and capability family.
91+
- Challenger submissions must explain how they relate to the current canon and why they should exist.
9092

9193
## Submission Path
9294

catalog/skills.json

Lines changed: 135 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,94 @@
11
{
22
"repo": "anthony-maio/synthesis-skills",
33
"schema_version": 1,
4+
"family_count": 12,
45
"skill_count": 12,
6+
"families": [
7+
{
8+
"capability_family": "deep-research-synthesizer",
9+
"canonical_skill": "deep-research-synthesizer",
10+
"canonical_trust_level": "trusted",
11+
"challengers": [],
12+
"variants": []
13+
},
14+
{
15+
"capability_family": "dispatching-parallel-agents",
16+
"canonical_skill": "dispatching-parallel-agents",
17+
"canonical_trust_level": "trusted",
18+
"challengers": [],
19+
"variants": []
20+
},
21+
{
22+
"capability_family": "receiving-code-review",
23+
"canonical_skill": "receiving-code-review",
24+
"canonical_trust_level": "trusted",
25+
"challengers": [],
26+
"variants": []
27+
},
28+
{
29+
"capability_family": "repo-surveyor",
30+
"canonical_skill": "repo-surveyor",
31+
"canonical_trust_level": "trusted",
32+
"challengers": [],
33+
"variants": []
34+
},
35+
{
36+
"capability_family": "requesting-code-review",
37+
"canonical_skill": "requesting-code-review",
38+
"canonical_trust_level": "trusted",
39+
"challengers": [],
40+
"variants": []
41+
},
42+
{
43+
"capability_family": "systematic-debugging",
44+
"canonical_skill": "systematic-debugging",
45+
"canonical_trust_level": "trusted",
46+
"challengers": [],
47+
"variants": []
48+
},
49+
{
50+
"capability_family": "test-driven-development",
51+
"canonical_skill": "test-driven-development",
52+
"canonical_trust_level": "trusted",
53+
"challengers": [],
54+
"variants": []
55+
},
56+
{
57+
"capability_family": "using-git-worktrees",
58+
"canonical_skill": "using-git-worktrees",
59+
"canonical_trust_level": "trusted",
60+
"challengers": [],
61+
"variants": []
62+
},
63+
{
64+
"capability_family": "verification-before-completion",
65+
"canonical_skill": "verification-before-completion",
66+
"canonical_trust_level": "trusted",
67+
"challengers": [],
68+
"variants": []
69+
},
70+
{
71+
"capability_family": "writing-clearly-and-concisely",
72+
"canonical_skill": "writing-clearly-and-concisely",
73+
"canonical_trust_level": "trusted",
74+
"challengers": [],
75+
"variants": []
76+
},
77+
{
78+
"capability_family": "writing-plans",
79+
"canonical_skill": "writing-plans",
80+
"canonical_trust_level": "trusted",
81+
"challengers": [],
82+
"variants": []
83+
},
84+
{
85+
"capability_family": "writing-skills",
86+
"canonical_skill": "writing-skills",
87+
"canonical_trust_level": "trusted",
88+
"challengers": [],
89+
"variants": []
90+
}
91+
],
592
"skills": [
693
{
794
"name": "deep-research-synthesizer",
@@ -55,7 +142,10 @@
55142
"trust_level": "trusted",
56143
"is_primary": true,
57144
"variant_of": null,
58-
"supersedes": []
145+
"supersedes": [],
146+
"submission_type": null,
147+
"nearest_canonical": null,
148+
"evidence_summary": null
59149
},
60150
"stss": {
61151
"attestation_present": false,
@@ -116,7 +206,10 @@
116206
"trust_level": "trusted",
117207
"is_primary": true,
118208
"variant_of": null,
119-
"supersedes": []
209+
"supersedes": [],
210+
"submission_type": null,
211+
"nearest_canonical": null,
212+
"evidence_summary": null
120213
},
121214
"stss": {
122215
"attestation_present": false,
@@ -177,7 +270,10 @@
177270
"trust_level": "trusted",
178271
"is_primary": true,
179272
"variant_of": null,
180-
"supersedes": []
273+
"supersedes": [],
274+
"submission_type": null,
275+
"nearest_canonical": null,
276+
"evidence_summary": null
181277
},
182278
"stss": {
183279
"attestation_present": false,
@@ -236,7 +332,10 @@
236332
"trust_level": "trusted",
237333
"is_primary": true,
238334
"variant_of": null,
239-
"supersedes": []
335+
"supersedes": [],
336+
"submission_type": null,
337+
"nearest_canonical": null,
338+
"evidence_summary": null
240339
},
241340
"stss": {
242341
"attestation_present": false,
@@ -297,7 +396,10 @@
297396
"trust_level": "trusted",
298397
"is_primary": true,
299398
"variant_of": null,
300-
"supersedes": []
399+
"supersedes": [],
400+
"submission_type": null,
401+
"nearest_canonical": null,
402+
"evidence_summary": null
301403
},
302404
"stss": {
303405
"attestation_present": false,
@@ -359,7 +461,10 @@
359461
"trust_level": "trusted",
360462
"is_primary": true,
361463
"variant_of": null,
362-
"supersedes": []
464+
"supersedes": [],
465+
"submission_type": null,
466+
"nearest_canonical": null,
467+
"evidence_summary": null
363468
},
364469
"stss": {
365470
"attestation_present": false,
@@ -420,7 +525,10 @@
420525
"trust_level": "trusted",
421526
"is_primary": true,
422527
"variant_of": null,
423-
"supersedes": []
528+
"supersedes": [],
529+
"submission_type": null,
530+
"nearest_canonical": null,
531+
"evidence_summary": null
424532
},
425533
"stss": {
426534
"attestation_present": false,
@@ -481,7 +589,10 @@
481589
"trust_level": "trusted",
482590
"is_primary": true,
483591
"variant_of": null,
484-
"supersedes": []
592+
"supersedes": [],
593+
"submission_type": null,
594+
"nearest_canonical": null,
595+
"evidence_summary": null
485596
},
486597
"stss": {
487598
"attestation_present": false,
@@ -542,7 +653,10 @@
542653
"trust_level": "trusted",
543654
"is_primary": true,
544655
"variant_of": null,
545-
"supersedes": []
656+
"supersedes": [],
657+
"submission_type": null,
658+
"nearest_canonical": null,
659+
"evidence_summary": null
546660
},
547661
"stss": {
548662
"attestation_present": false,
@@ -603,7 +717,10 @@
603717
"trust_level": "trusted",
604718
"is_primary": true,
605719
"variant_of": null,
606-
"supersedes": []
720+
"supersedes": [],
721+
"submission_type": null,
722+
"nearest_canonical": null,
723+
"evidence_summary": null
607724
},
608725
"stss": {
609726
"attestation_present": false,
@@ -664,7 +781,10 @@
664781
"trust_level": "trusted",
665782
"is_primary": true,
666783
"variant_of": null,
667-
"supersedes": []
784+
"supersedes": [],
785+
"submission_type": null,
786+
"nearest_canonical": null,
787+
"evidence_summary": null
668788
},
669789
"stss": {
670790
"attestation_present": false,
@@ -726,7 +846,10 @@
726846
"trust_level": "trusted",
727847
"is_primary": true,
728848
"variant_of": null,
729-
"supersedes": []
849+
"supersedes": [],
850+
"submission_type": null,
851+
"nearest_canonical": null,
852+
"evidence_summary": null
730853
},
731854
"stss": {
732855
"attestation_present": false,

docs/submitting-skills.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,26 @@ If your skill includes `attestation.json`, make sure the registry maintainers ha
4848
- Human review is still required for quality, licensing, and fit.
4949
- Canonical duplicates should not merge. New submissions should usually improve an existing family or justify a genuinely new one.
5050

51+
## Challenger Workflow
52+
53+
If a submission is trying to compete with or improve the current canon, treat it as a challenger:
54+
55+
- set `lifecycle_stage` to `challenger`
56+
- set `trust_level` to `probation`
57+
- set `is_primary` to `false`
58+
- include `submission_type`
59+
- include `evidence_summary`
60+
- include `nearest_canonical` unless this is a `new_family_candidate`
61+
62+
Current submission types:
63+
64+
- `new_family_candidate`
65+
- `canonical_improvement_candidate`
66+
- `variant_candidate`
67+
- `supersedes_existing`
68+
69+
Repo-wide validation enforces one primary canonical skill per capability family and rejects malformed challengers.
70+
5171
## Agent-Generated Skills
5272

5373
When Synthesis generates a new skill from task work, treat that submission as a draft proposal:
@@ -66,6 +86,7 @@ When Synthesis generates a new skill from task work, treat that submission as a
6686
- the registry metadata is coherent
6787
- helper scripts are scoped to the skill
6888
- the generated catalog reflects the submitted skill state
89+
- the family-level catalog view reflects the right canonical or challenger state
6990
- provenance is clear enough for curation
7091
- STSS scan output is clean for the changed skill package
7192
- attested skills can be verified with the configured public key set

0 commit comments

Comments
 (0)