Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

Postupujte podle procedury, kterou repozitář definuje, a přidejte další

Přečtěte dovednosti repozitáře, převezměte jednu tak, jak je napsána, a novou přidejte napsáním jejího souboru — bez registru, bez kódu a s kontrolou, která řekne, co prověřila.

zaručeno Rozšířenízákladnímaintaineragentjen pro čtení

Situace

Repozitář má postupy, které by jeho workeři, lidé i stroje, měli dodržovat: jak se tu dělá review, jak se provádí změna, jak se nasazuje web. Žijí v něčí hlavě, ve wiki, kterou nikdo neaktualizuje, nebo vložené do konfiguračního souboru providera, kde je další nástroj nepřečte.

Scénář

setup: installed-skill
given:
  - 'a repository whose skills section holds one skill directory with SKILL.md and one example, tracked in git'
steps:
  - id: list
    run: ['skills', 'list']
    note: 'the inventory is the directory: what is tracked is what is listed'
    expect:
      exit: 0
      stdout_contains: ['^release-notes +active +v1 ']
  - id: read-one
    run: ['skills', 'show', 'release-notes']
    note: 'the canonical path, then the file as written — the procedure, not a paraphrase'
    expect:
      exit: 0
      stdout_contains: ['^\.ai/repo/skills/release-notes/SKILL\.md$', '^# Procedure$']
  - id: machine-readable
    run: ['skills', 'show', 'release-notes', '--json']
    note: 'the same skill for a program: metadata, provenance, examples and the body'
    expect:
      exit: 0
      stdout_contains: ['"uri":"majordomus://skill/release-notes"', '"path":".ai/repo/skills/release-notes/SKILL.md"', '"valid":true']
  - id: check
    run: ['skills', 'check']
    note: 'a clean result states what it examined; a repository with no skills is reported, never passed'
    expect:
      exit: 0
      stdout_contains: ['^OK   skill', 'skills: 1 discovered']
  - id: refuse-unknown
    run: ['skills', 'show', 'nosuch']
    note: 'a skill that does not exist is named, with the command that lists what does'
    expect:
      exit: 12
      stdout_contains: ["no skill 'nosuch'", 'majordomus skills list']
then:
  - 'the listing, the catalogue the site renders and the resources the MCP server serves all come from the same discovery'
  - 'adding a skill is adding its directory; removing it removes the skill from every surface'

Výsledek

Každý postup je jeden adresář v sekci dovedností vrstvy, který drží SKILL.md, objevený tím, že soubor existuje. skills list je inventář, skills show je postup tak, jak je napsán, s cestou, odkud pochází, a skills check hlásí, co prozkoumal — dovednosti, příklady a reference — takže úspěch je důkaz, a ne slovo. Ze stejného katalogu se promítají stránky dovedností na webu i zdroje MCP, takže žádný povrch nevede vlastní seznam.

Scénář

Provedeno proti skutečnému nástroji v repozitáři připraveném pomocí installed-skill, při každém generování tohoto webu. To, co následuje, není popis toho, co by se mělo stát; je to to, co se stalo.

dáno

  • repozitář, jehož sekce dovedností drží jeden adresář dovednosti se SKILL.md a jedním příkladem, sledovaný v gitu

kdy

  1. 1majordomus skills list
  2. 2majordomus skills show release-notes
  3. 3majordomus skills show release-notes --json
  4. 4majordomus skills check
  5. 5majordomus skills show nosuch

pak

  • výpis, katalog, který web vykresluje, a zdroje, které servíruje MCP server, pocházejí ze stejného objevování
  • přidat dovednost znamená přidat její adresář; odebrat ji znamená odebrat dovednost z každého povrchu

Co nástroj udělal

Důkaz běhu, z něhož byla tato stránka vygenerována: pass, 5 kroků. Výstup je normalizován: cesta repozitáře, časová razítka, id a doby trvání jsou zástupné hodnoty; nic dalšího se neupravuje.

Testováno v test/cases/94_use_cases.sh, který spouští každý scénář a odmítne krok, jehož zaznamenaný výstup není tím, co vyprodukoval.

  1. inventář je adresář: co je sledováno, je to, co je vypsáno

    release-notes          active     v1   Write the release notes for a tagged version from the ledger and the closed issues, never from memory.
    • exit 0
    • stdout_contains /^release-notes +active +v1 /
  2. kanonická cesta, pak soubor tak, jak je zapsán — postup, ne parafráze

    .ai/repo/skills/release-notes/SKILL.md
    ---
    schema: skill/v1
    id: release-notes
    version: 1
    title: Release notes
    description: Write the release notes for a tagged version from the ledger and the closed issues, never from memory.
    status: active
    tags: [release, documentation]
    inputs:
      - the tag being released and the previous tag
    outputs:
      - a release-notes section per closed issue, each naming its evidence
    ---
    # Purpose
    
    Turn what the ledger and the plan record into the notes a reader of the tag needs.
    
    # Procedure
    
    1. List the issues closed between the two tags with `majordomus plan list`.
    2. For each, quote its outcome and the evidence attached to it.
    3. Refuse to describe a change that no closed issue records.
    
    # Output
    
    One section per issue: title, what changed, the evidence, in plan order.
    • exit 0
    • stdout_contains /^\.ai/repo/skills/release-notes/SKILL\.md$/
    • stdout_contains /^# Procedure$/
  3. táž dovednost pro program: metadata, provenience, příklady a tělo

    {"id":"release-notes","uri":"majordomus://skill/release-notes","title":"Release notes","description":"Write the release notes for a tagged version from the ledger and the closed issues, never from memory.","status":"active","version":1,"tags":["release","documentation"],"related":[],"inputs":["the tag being released and the previous tag"],"outputs":["a release-notes section per closed issue, each naming its evidence"],"path":".ai/repo/skills/release-notes/SKILL.md","sha256":"<sha><hash16>2743ea3a","examples":[".ai/repo/skills/release-notes/examples/notes-for-a-tag.md"],"valid":true,"body":"# Purpose\n\nTurn what the ledger and the plan record into the notes a reader of the tag needs.\n\n# Procedure\n\n1. List the issues closed between the two tags with `majordomus plan list`.\n2. For each, quote its outcome and the evidence attached to it.\n3. Refuse to describe a change that no closed issue records.\n\n# Output\n\nOne section per issue: title, what changed, the evidence, in plan order.\n"}
    • exit 0
    • stdout_contains /"uri":"majordomus://skill/release-notes"/
    • stdout_contains /"path":".ai/repo/skills/release-notes/SKILL.md"/
    • stdout_contains /"valid":true/
  4. čistý výsledek uvádí, co zkoumal; repozitář bez dovedností se hlásí, nikdy neprojde

    OK   skill       1 skill(s) — every one parses, matches its directory and carries its sections
    OK   skill       1 reference(s) — every related id and every example resolves
    skills: 1 discovered, 1 valid; examples: 1; references: 1 checked; failures: 0
    • exit 0
    • stdout_contains /^OK skill/
    • stdout_contains /skills: 1 discovered/
  5. dovednost, která neexistuje, je pojmenována spolu s příkazem, který vypíše ty, které existují

    majordomus: no skill 'nosuch' (.ai/repo/skills/nosuch/SKILL.md); try: majordomus skills list
    • ukončení 12
    • stdout_contains /no skill 'nosuch'/
    • stdout_contains /majordomus skills list/

Proč to nástroj ví

Řetězec od této stránky ke kódu: případ užití jmenuje příkazy, pravidla a tvrzení; každé pravidlo se dispatchuje z registru a každé tvrzení jmenuje test, který ho dokazuje; scénář výše provedl příkazy. Nic v tomto řetězci není text o záměru.

Pravidla, díky nimž platí

Uplatněné záruky

Související případy užití

Vypočteno z toho, co sdílejí: tvrzení, pravidla, příkazy, kategorie, aplikace. Tento seznam nikdo neudržuje.

Prohledává názvy a popisy všech stránek, které tento web publikuje.