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.

Dělat u dlouhé práce kontrolní body, aby zastavení stálo minuty, ne celý den

Zaznamenávejte stručný postup uvnitř aktivní úlohy v intervalu profilu, aby relace, která skončí bez varování, nechala další místo, kde začít.

zaručeno Relace a předávkazákladníagentpřispěvatelzapisuje stav

Situace

Úloha běží hodiny. Relaci, která ji drží, může přerušit limit kontextu, pád nebo člověk zavírající notebook, a odnese s sebou vše, co se worker naučil od posledního trvalého záznamu. Přepis není záznam; nelze jej obnovit a není na nástroji, aby jej uchovával.

Co spouštíte

  • checkpoint: krátké tělo na stdin se stane omezeným záznamem v lokální polovině, s identitou vypočtenou z gitu
  • check: hlásí, zda je checkpoint čerstvý vůči intervalu profilu, vedle rozsahu a blokátorů
  • context: další worker čte nejnovější kontrolní bod uvnitř sestaveného kontextu, ne vložený log

Scénář

setup: active-task
given:
  - 'an active task scoped to lib, with work done inside that scope'
steps:
  - id: checkpoint
    run: ['checkpoint']
    stdin: checkpoint-body.md
    note: 'a capped progress record; its branch and head are computed from git, never written by hand'
    expect:
      exit: 0
      stdout_contains: ['\.ai/local/state/checkpoints/']
  - id: fresh
    run: ['check']
    note: 'the checkpoint is fresh against the profile interval and the task is consistent with git'
    expect:
      exit: 0
      stdout_contains: ['0 failing']
  - id: resume
    run: ['context']
    note: 'the newest checkpoint is part of what the next worker reads'
    expect:
      exit: 0
      stdout_contains: ['^## TASK', 'checkpoint']
then:
  - 'the checkpoint file carries the branch and head it was written at'
  - 'check reports the checkpoint age against the profile interval'
  - 'context names the task and its newest checkpoint'

Výsledek

Postup existuje jako soubor, který nástroj najde, omezený tak, aby zůstal shrnutím, a profil rozhoduje, jak moc zastaralé je příliš zastaralé. Relace, která se zastaví uprostřed úlohy, ztratí nanejvýš jeden interval.

Scénář

Provedeno proti skutečnému nástroji v repozitáři připraveném pomocí active-task, 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 rozsahem lib, s prací provedenou uvnitř tohoto rozsahu

kdy

  1. 1majordomus checkpoint
  2. 2majordomus check
  3. 3majordomus context

pak

  • soubor checkpointu nese větev a head, na nichž byl zapsán
  • kontrola hlásí stáří checkpointu vůči intervalu profilu
  • kontext jmenuje úlohu a její nejnovější checkpoint

Co nástroj udělal

Důkaz běhu, z něhož byla tato stránka vygenerována: pass, 3 kroky. Výstup je normalizován: cesta k repozitáři, č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. 1$ majordomus checkpoint exit 0< checkpoint-body.md

    omezený záznam o postupu; jeho větev a head se počítají z gitu, nikdy nepíší ručně

    .ai/local/state/checkpoints/<time>--main--<head>--<hash>.md
    • exit 0
    • stdout_contains /\.ai/local/state/checkpoints//
  2. kontrolní bod je čerstvý vůči intervalu profilu a úloha je konzistentní s gitem

    OK   knowledge   records — 0 record(s) valid against knowledge/v1; every reference resolves  [reproduce: majordomus knowledge check]
    ·    checkpoint  t-<id> — <timed against the checkpoint interval>
    INFO checkpoint  .ai/local/state/checkpoints/<time>--main--<head>--<hash>.md — newest record, <age> ago  [reproduce: majordomus checkpoint --show]
    OK   records     ledger.jsonl — every line is a well-formed event
    OK   blockers    t-<id> — none open
    OK   records     decisions.md — every entry is attributable
    OK   scope       t-<id> — 1 touched file(s), all within scope
    OK   state       t-<id> — exact (head <head>)
    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)
    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
    check: 13 finding(s), 0 failing
    • exit 0
    • stdout_contains /0 failing/
  3. nejnovější checkpoint je součástí toho, co čte další worker

    # Majordomus context — <time>
    # a projection of durable state, not a source of truth: validate every line against git
    
    ## GIT
    repository   <repo>
    branch       main
    head         <sha>
    working_tree dirty
    task_record  exact (recorded head <head>)
    
    ## TASK
    id           t-<id>
    task         narrow the parser
    profile      implementation
    owner        <owner>
    outcome      active
    scope        lib
    started      <time> (<age> ago)
    checkpoint   <time> (<age> ago, interval 15m)
    
    ## PROFILE implementation
    capability   standard
    effort       medium
    verbosity    concise
    presentation engineering
    verification verify command
    output       outcome, changes, verification, blockers, next_action
    
    ## CONTEXT DOCUMENTS (for the scope, root first; majordomus context explain <path>)
    lib  ai.layer
    
    ## KNOWLEDGE (candidates awaiting review on this branch; majordomus knowledge candidates)
    No knowledge candidates await review on this branch. That is an answer, not a gap: `majordomus knowledge candidates` lists every branch.
    
    ## DECISIONS (5 most recent for this task)
    (none)
    
    ## LATEST CHECKPOINT (.ai/local/state/checkpoints/<time>--main--<head>--<hash>.md, <age> ago, exact)
    the parser now refuses tabs; the message names the column
    
    ## FILES TOUCHED IN SCOPE (1)
    lib/a
    
    ## EXCLUDED
    - handover — no record for this worktree and branch — absence, not a stale match
    - history — profile implementation sets context.recent_history_depth: 0
    
    ## BUDGET
    49 of 300 lines
    • exit 0
    • stdout_contains /^## TASK/
    • stdout_contains /checkpoint/

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.