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.

Rozhodnout, zda je dokončená práce skutečně dokončená

Vyhodnoťte smlouvu řádek po řádku, místo abyste přijali větu, která říká, že práce je hotová.

zaručeno Kontroly dokončení a kvalitypokročilýrevieweragentzapisuje stav

Situace

Worker ohlásí úspěch. Hlášení je odstavec, důkazem je ten odstavec a jeho přijetí je věc důvěry, a ne kontroly.

Co spouštíte

  • question: cokoli nevyřešeného se zaznamená jako stav a odmítá dokončení, dokud trvá
  • finish: --verify-command spustí vlastní ověření projektu a zaznamená jeho návratový kód, dobu trvání a strom, nad nímž běželo

Scénář

setup: finish-ready
given:
  - 'an active task with its completion note written'
steps:
  - id: open-a-question
    run: ['question', 'add', 'should tabs be an error or a warning?']
    note: 'an unresolved question naming the task'
    expect:
      exit: 0
      stdout_contains: ['^opened for t-']
  - id: refused-while-open
    run: ['finish', '--outcome', 'completed', '--verify-command', 'test -d .ai']
    note: 'an open question is a blocker; completed is refused'
    expect:
      exit: 10
      stdout_contains: ['^FAIL blockers', 'refused']
  - id: resolve-it
    run: ['question', 'resolve', '1', '--answer', 'an error']
    note: 'the question is answered as state, not in prose'
    expect:
      exit: 0
      stdout_contains: ['resolved']
  - id: accepted
    run: ['finish', '--outcome', 'completed', '--verify-command', 'test -d .ai']
    note: 'every line of the finish contract passes and the outcome is recorded'
    expect:
      exit: 0
      stdout_contains: ['completed']
then:
  - 'finish writes nothing while any line of the contract fails'
  - 'the verification command, its exit code, its duration and the tree it ran over are recorded'

Výsledek

Odmítnutí jmenuje pravidla, která odmítla. Výsledek je typovaný — completed, partial, blocked, no_match, failed — takže „věc neexistuje“ a „nemohl jsem to udělat“ zůstávají různými fakty.

Scénář

Provedeno proti skutečnému nástroji v repozitáři připraveném pomocí finish-ready, 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

  • aktivní úloha s napsanou poznámkou o dokončení

kdy

  1. 1majordomus question add should tabs be an error or a warning?
  2. 2majordomus finish --outcome completed --verify-command test -d .ai
  3. 3majordomus question resolve 1 --answer an error
  4. 4majordomus finish --outcome completed --verify-command test -d .ai

pak

  • finish nezapisuje nic, dokud selže některý řádek kontraktu
  • ověřovací příkaz, jeho návratový kód, jeho doba trvání a strom, nad nímž běžel, se zaznamenávají

Co nástroj udělal

Důkazy o běhu, ze kterého byla tato stránka vygenerována: pass, kroků: 4. Výstup je normalizovaný: cesta k repozitáři, časová razítka, identifikátory 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. nevyřešená otázka jmenující úlohu

    opened for t-<id>: should tabs be an error or a warning?
    • exit 0
    • stdout_contains /^opened for t-/
  2. otevřená otázka je blokátor; completed se odmítne

    FAIL blockers    t-<id> — 1 unresolved question(s) on this branch; first: t-<id> — should tabs be an error or a warning?  [reproduce: majordomus question list]
    OK   note        t-<id> — <time>--main--<head>--<hash>.md
    INFO regression  t-<id> — profile implementation adds no requirement beyond the shared contract
    OK   scope       t-<id> — 1 touched file(s), all within scope
    OK   state       t-<id> — exact (head <head>)
    INFO continuity  t-<id> — applies to partial and blocked
    INFO mesh        t-<id> — the repository declares no enabled mesh
    INFO use-case    30 advisory gap(s) — not covered by an active use case, and the policy does not require it: command:init command:update command:doctor command:watch command:start command:context command:checkpoint command:handover command:check command:finish command:history command:decision command:question command:prompt command:evidence command:skills command:capture command:search command:doctrine command:plan command:version command:session command:knowledge command:adr command:usecase command:rules command:migrate command:recover command:bench command:archive  [reproduce: majordomus usecase coverage]
    OK   use-case    0 of 30 target(s) covered — every public command the policy requires is named and run by an active use case (policy use_cases.coverage)
    OK   verification t-<id> — test -d .ai — exit 0, <s>s, tree <tree>
    INFO obligation  t-<id> — the task declares no obligations
    INFO gate        t-<id> — this repository declares no CI model at .ai/repo/ci/gates.yaml; nothing can be planned
    INFO gate        t-<id> — not in verification.finish_requires
    finish: refused, 1 unmet
    blocking doctrines:
    - majordomus.blocker-resolution
    • exit 10
    • stdout_contains /^FAIL blockers/
    • stdout_contains /refused/
  3. otázka je zodpovězena jako stav, ne prózou

    resolved for t-<id>: should tabs be an error or a warning?
    • exit 0
    • stdout_contains /resolved/
  4. každý řádek kontraktu dokončení projde a výsledek je zaznamenán

    OK   blockers    t-<id> — none open
    OK   note        t-<id> — <time>--main--<head>--<hash>.md
    INFO regression  t-<id> — profile implementation adds no requirement beyond the shared contract
    OK   scope       t-<id> — 1 touched file(s), all within scope
    OK   state       t-<id> — exact (head <head>)
    INFO continuity  t-<id> — applies to partial and blocked
    INFO mesh        t-<id> — the repository declares no enabled mesh
    INFO use-case    30 advisory gap(s) — not covered by an active use case, and the policy does not require it: command:init command:update command:doctor command:watch command:start command:context command:checkpoint command:handover command:check command:finish command:history command:decision command:question command:prompt command:evidence command:skills command:capture command:search command:doctrine command:plan command:version command:session command:knowledge command:adr command:usecase command:rules command:migrate command:recover command:bench command:archive  [reproduce: majordomus usecase coverage]
    OK   use-case    0 of 30 target(s) covered — every public command the policy requires is named and run by an active use case (policy use_cases.coverage)
    OK   verification t-<id> — test -d .ai — exit 0, <s>s, tree <tree>
    INFO obligation  t-<id> — the task declares no obligations
    INFO gate        t-<id> — this repository declares no CI model at .ai/repo/ci/gates.yaml; nothing can be planned
    INFO gate        t-<id> — not in verification.finish_requires
    finish: t-<id> completed
    • exit 0
    • stdout_contains /completed/

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.

Okamžiky, na které to odpovídá

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