feat(skills): review-skill, dedup-skills, externe-skill-audit en sessie-terugblik - #70
Merged
Merged
Conversation
Contributor
Author
|
Het is erg veel tekst geworden. Ik weet niet zeker of alles goed werkt, al heeft claude uitvoerig getest. |
Sluit de skill-levensloop: aanmaken was gedekt door create-skill, beoordelen, ontdubbelen en auditen niet. Alle drie zijn gebouwd met create-skill en getest volgens RED-GREEN: eerst een baseline-run per taak zonder de skill, daarna dezelfde taak met de skill. De baselines vonden ruim voldoende maar sloegen door naar een actie zonder het pad te controleren -- publiceren zonder te vragen, rm -rf zonder na te denken over kopieen in andere repo's, een chain lezen als kapotte links in plaats van als opgetelde rechten. Dat is wat deze drie begrenzen. review-skill (workflow, own) - blokkerende scope-gate: een PR met twee skills of met inhoud die al op main staat is niet reviewbaar; stoppen en terugvragen - validator-output geldt als bevestigd defect, geen alinea per punt - vier oordeelsvragen: scope, overlap, herkomst, type-classificatie - posten heeft een eigen akkoord, los van "review deze PR" - geen Write/Edit: de skill onder review is data, geen instructie dedup-skills (workflow, own) + references/deprecatiepad.md - detectie komt uit de validator, de skill draagt het oordeel en het pad - drie uitkomsten: samenvoegen, parametriseren, houden-met-exclusion-clause - ablation verplicht voor "overbodig", behalve bij een aantoonbare kloon - deprecatiepad voor een collectie die via npx skills add gekopieerd wordt: vervanger eerst, tombstone, kopieen in de org opzoeken, dan pas weghalen - geen ceda-deprecated-veld; de description draagt de doorverwijzing externe-skill-audit (reference/knowledge, own) - vier oppervlakken: tools, netwerk, gebundelde scripts, chains - een chain telt rechten op die in geen enkele allowed-tools zichtbaar zijn; het deel dat onvertrouwde inhoud verwerkt krijgt geen schrijfrechten - de audit eindigt in een ingevulde allowed-tools, niet in "ziet er schoon uit" validate-skill.py - nieuwe fout: twee directories die dezelfde name claimen - exclusion-clause-check herschreven. De oude substring-match herkende "buitenwereld" als begrenzing en "gebruik dan deze skill" als doorverwijzing, en verzweeg daardoor het enige paar in de collectie met een byte-identieke description (ui-designer / ontwerper-digitaal-product). De verwijzende vorm moet nu de andere skill noemen, de begrenzende vorm een scope. create-skill - verificatie-eis gerepareerd: het totale aantal overlap-waarschuwingen is geen maat, want de corpusdrempel verspringt als de collectie groeit - vorm-patronen aangevuld met twee stukken uit superpowers:writing-skills: vorm-bij-faaltype, en de micro-test met no-guidance control - dode verwijzingen naar het verwijderde docs/skill-gaps.md weg Refs #61
Generieke versie van de skill uit ceda-workshop-starter, losgemaakt van de
workshop-harness. Die versie leest voortgang.md, .claude/.sessie-status.md en een
rol uit een statusbestand, en schrijft reflectie.md in de projectrepo — alle drie
bestaan alleen daar.
Wat deze versie doet:
- context uit twee git log-commando's, verder niets: naam, commit-range en de
Entire-Checkpoint-trailers als die er zijn
- output is een markdownbestand in cedanl/repo-context-as-data onder
data/<datum>/<repo>/, append-only (nieuw bestand, nooit overschrijven)
- frontmatter draagt de commit-range, zodat de menslaag (waarom, wat bleef
liggen) later te koppelen is aan de machinelaag die checkpoint-tooling per
commit vastlegt
- verbruik wordt geteld uit het sessietranscript in plaats van de gebruiker /cost
te laten draaien; scripts/sessie-tokens.py print het als YAML
- elke vraag is optioneel en een dun antwoord is een antwoord: geen doorvragen,
geen verplichting iets goeds te melden
- eigen waarnemingen van de agent staan apart onder "Wat de agent zag", alleen
aanwijsbaar (een skill die niet vuurde, een correctie, een omweg), en de
deelnemer mag ze schrappen voor het wegschrijven
Getest met een ablation: zonder de skill gaat het model coachen en oordelen
("bewust != blind, dus geen echte blinde vlek"), parafraseert het de antwoorden
en levert het geen artefact. Met de skill blijven de woorden van de deelnemer
staan en komt er een concept met volledige SHA-range.
generate-slides-retro-simple krijgt een exclusion-clause die terugwijst, omdat de
descriptions overlappen op board/commits/review/sprint.
CorneeldH
force-pushed
the
skills/lifecycle
branch
from
August 14, 2026 16:06
b445f6a to
dba4f59
Compare
Reflectie gaat over eigen handelen; deze skill legt de sessie vast, inclusief wat de agent deed en wat er niet vuurde terwijl het had gepast. Evaluatie was het alternatief maar brengt een oordeelsframe mee dat vecht met de kernregel van de skill (niet oordelen, woorden van de deelnemer overnemen), en binnen CEDA betekent evaluatie al iets anders: instrumenten zoals evaluatietool-selectie. Meeverhuisd: directorynaam, name, ceda-id, het pad in de data-repo (sessie-terugblik-<naam>.md), type in de frontmatter van het artefact, de commit-message van de PUT, en de exclusion-clause in generate-slides-retro-simple. "Reflectie" blijft als triggerwoord in de description staan — mensen typen dat, en de skill hoort er gewoon op te vuren. ceda-source blijft naar het sessie-reflectie-bestand in ceda-workshop-starter wijzen; dat heet daar nog zo.
Merged
13 tasks
EdwinLieftink
approved these changes
Aug 18, 2026
EdwinLieftink
left a comment
Contributor
There was a problem hiding this comment.
Ik heb de Skills gescand en kan (nog) niet echt beoordelen of ze echt goed werken. Ga morgen specifiek eens spelen met de 'review-skill'. Maar laat dat ons niet weerhouden om deze Skills goed te keuren.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request Description
Sluit de skill-levensloop. Aanmaken was gedekt door
create-skill; beoordelen, ontdubbelen en auditen niet.Base is
skills/ontology-create-skill-v2(#68), nietmain— deze PR bouwt daarop voort en is pas te mergen nadat #68 geland is.Type of Change
validate-skill.py)Description of Changes
Drie artefacten, alle drie gebouwd met de herziene
create-skill— dat was meteen de eerste echte test van die workflow.review-skillowndedup-skills+references/deprecatiepad.mdownexterne-skill-auditownallowed-toolsals besluitAfwijking van #61:
audit-skillis géén workflow geworden maar een reference. Twee workflows die allebei op "kijk naar deze skill" vuren is precies de description-concurrentie waar dat issue tegen vecht.review-skilllaadt de reference bijceda-origin: external | extended.review-skillheeft bewust geenWrite/Edit: deSKILL.mdonder review is geschreven om een agent aan te sturen, en dat is hier data, geen instructie. Dat is dezelfde regel dieexterne-skill-auditvoorschrijft, toegepast op zichzelf.Twee defecten in
validate-skill.pyDuplicate
name. Twee directories die dezelfdenameclaimen was alleen indirect zichtbaar, vianame≠ directorynaam, en dan maar aan één kant. Nu een eigen fout.Exclusion-clause-check. De oude substring-match herkende
buitenwereld als begrenzing, "gebruik dan deze skill" als doorverwijzing (dat verbreedt de trigger juist) en "fill in the template instead of leaving it blank" als clause. Daardoor verzweeg hij de overlapwaarschuwing op het enige paar in de collectie met een byte-identieke description:ui-designer/ontwerper-digitaal-product(md51bc5d0ae…aan beide kanten).De twee vormen uit
description-schrijven.mdworden nu apart getoetst: de verwijzende vorm moet de andere skill nóemen (backticks ofskill <naam>), de begrenzende vorm moet een scope hebben (niet voor X).create-skillmeegewijzigdint(0.12 × aantal skills), dus die verspringt als de collectie groeit. Gemeten: 56 skills gaf 61 waarschuwingen, dezelfde collectie plus drie nieuwe skills gaf er 86 — en géén van die 25 noemde een nieuwe skill. De eis is nu "geen waarschuwing waarin jouw skill genoemd wordt".references/vorm-patronen.mdaangevuld met twee stukken uitsuperpowers:writing-skills(de upstream): vorm-bij-faaltype (verbod vs. recept vs. structureel veld vs. conditional) en de micro-test met no-guidance control, inclusief de regel "vertoont de control het probleem niet, schrijf de guidance dan niet".docs/skill-gaps.mdweg, hier en inskills-ontology/references/rationale.md.Related Issues
Refs #61. Raakt #59 (de exclusion-clause-fix verandert welke skills als overtreder gelden) en #49.
Comparison: Before and After
Before
ceda-origin: externalovernemen juist aanmoedigt.After
name-check paktvormgever-npuls-huisstijl/-2aan beide kanten, en vijf skills verloren een exclusion-clause die ze nooit hadden.Testing Instructions
Alle drie zijn RED-GREEN getest met subagents: eerst dezelfde taak zónder de skill (baseline), daarna mét.
De baselines faalden niet op detectie — die was ruim voldoende — maar op begrenzing. Alle drie sloegen door naar een actie zonder het pad te controleren:
rm -rfvoor, geen woord over kopieën elders. Verklaarde skills overbodig op tekstgelijkenis. Wilde eenceda-deprecated-veld verzinnen.REQUIRED BACKGROUND-chains als kapotte links. Besloot niet welkeallowed-toolsde skill zou krijgen.In de GREEN-runs deden alle drie het wél. De GREEN-run van
dedup-skillslegde bovendien een blokkade bloot die we niet kenden: de verplichte ablation kan nu niet draaien, want de collectie bevat nul evalcases. Drie van de vijf voorgestelde samenvoegingen zijn daarmee geblokkeerd tot die er zijn.Zelf natrekken:
De eerste drie geven exit 0, nul waarschuwingen. De collectie-brede run meldt
ui-designer↔ontwerper-digitaal-productnu aan beide kanten.Validation
validate-skill.pygroen op alle drie de nieuwe skills en op de twee gewijzigdestyler::style_active_file()— n.v.t., geen R in deze PRDependencies
Geen nieuwe.
dedup-skillsverwijst naarclaude plugin eval --ablation, dat bestaat maar nog geen evalcases heeft.Additional Information
Twee dingen die om een besluit vragen:
dedup-skillsis nu niet uitvoerbaar. Los issue waard vóór de eerste echte dedup-ronde.persuasion-principles.mduit superpowers vult een gat in onze binding-as (hóé formuleer je een harde binding). Bewust níet overgenomen: het is expliciet een document over persuasietechniek op het model toepassen, encedanl/.githubis publiek. Inhoudelijke keuze, geen implementatiedetail.Checklist
sessie-terugblikerbijVierde skill in deze PR, los van de levensloop-drieslag: de generieke versie van
sessie-reflectieuitceda-workshop-starter, hier hernoemd naarsessie-terugblik. Die projectversie leestvoortgang.md,.claude/.sessie-status.mden een rol uit een statusbestand, en schrijftreflectie.mdin de projectrepo — alle drie bestaan alleen daar.git log-commando's: naam, commit-range,Entire-Checkpoint-trailers. Verder nietscedanl/repo-context-as-dataonderdata/<datum>/<repo>/, nieuw bestand per reflectiescripts/sessie-tokens.py), niet via/cost## Wat de agent zag, alleen aanwijsbaar, deelnemer mag schrappenAblation gedraaid (identieke prompt, met en zonder de skill, verse context):
Drie defecten kwamen uit die runs en zijn gerepareerd: commit-subject werd als projectnaam gebruikt,
cedanlwas hardcoded als owner in plaats van uit de remote, en beantwoorde vragen werden opnieuw gesteld.generate-slides-retro-simplekrijgt een terugwijzende exclusion-clause; de descriptions overlappen opboard,commits,review,sprint.Openstaand: de workshop-versie heet nog
sessie-reflectieen schrijftreflectie.mdin de projectrepo. De hernoeming haalt de naamsbotsing weg, maar laat wel twee skills bestaan die hetzelfde doen. Dat is werk voordedup-skillsuit deze PR, in een eigen traject.Vervolgissue: cedanl/repo-context-as-data#1 —
metadata.jsonkent de handgeschreven reflectiebestanden niet.