Skip to content

Latest commit

 

History

History
68 lines (51 loc) · 8.41 KB

README.md

File metadata and controls

68 lines (51 loc) · 8.41 KB

ドキュメント

Axon の振る舞いの契約は reference/ の各文書、状態と遷移のモデルは spec、層の境界と依存方向は 層の依存方向 です。

利用は 使い始める から確認してください。

利用者向け

文書 読む目的
使い始める 試用手順、保存先の作り方、同梱skill
日常の操作 候補、状態変更、label、Group最終確認、記録参照、計画の一括登録・編集
状態と用語 lifecycle、label、関係
保存先とworktree 無視する運用と追跡する運用、探索・初期化の境界
Agentからのアクセス ホスト権限と保存先

契約

文書 定義する範囲
lifecycle 状態と遷移、Groupの実効lifecycle、再浮上条件、計画と包含、種類の変換、dependency、候補集合、label、文面・Note・状態変更履歴・記録者
候補と外部条件 axon tasksの行と状況、`axon proposals
CLI入出力 ID・引数・一覧と詳細・英語表示・装飾・保存結果
保存と統合 記録と現在値の導出、衝突・違反・gap、保存先の探索と初期化、Git統合の範囲
一括declaration 計画全体の取得と一括編集のfile形式、axon export・axon import
デスクトップアプリ 閲覧専用アプリの登録の一覧、操作、axon gui からのリンクの扱い

開発者向け

文書 定義する範囲
モデル Quintモデルの対象範囲、検証する性質、再現手順
層の依存方向 層の責務の境界と依存方向の規則
検証方針 CI、独立fixture、モデル検証の分担
デスクトップアプリの開発 ビルドの要件、採用依存の固定、.app の作成、確認結果
リリース タグ起点の公開、Homebrew配布、tap更新失敗時の復旧
設計判断 現在の契約がその形になっている理由と、採らなかった案

記録 file の形式は codec、公開の順序は file adapter、保存先の探索と初期化は location、Usageは Clap定義 を正本とします。

更新するとき

  • 現在のルールは担当する契約文書で定義する。別の文書で説明するときは要約とリンクにする。
  • 契約は現在形で書く。理解に必要な短い理由は契約の近くに残し、長い比較や判断の背景は design に置く。
  • development は、コードからは読み取れない層の境界・依存方向と検証の方針だけを示す。module の配置、保存形式の項目、関数の処理順、テストの入口やコマンドなど、コード・設定・script を読めば分かる内容は書かず、必要ならリンクする。実装に固有の不変条件はその処理の隣のコメントに置き、振る舞いとして保証するものは reference に置く。
  • 検証方法は development、検証結果には実施時点と対象・条件を記す。
  • 未決事項の採否や作業状況は Axon で管理し、docs に現況一覧を複製しない。
  • 文書を移動・分割したら、README、AGENTS.md、モデル冒頭などの参照元も更新する。
  • 利用者向け文書は日本語で書き、CLIの識別子は実際の表記を併記する。段落内には手動改行を入れず、表示幅による折り返しに任せる。

Axonの操作・遷移・状態の表記

このリポジトリが書く日本語の文書・skillでは、散文でAxonの操作・遷移・状態を指す語を必ずcode表記にする。code表記でない英単語はAxonの操作を指さない。この読み分けを契約とし、Axonの操作を指さない語は規約の対象外とする。英語のCLI出力・help・内蔵文書には適用しない。

  1. コマンドの実行を指すときは、axon start・axon show ID --details・axon import prepare …のように、引用するcode spanをaxonから始める。同じ列挙ではaxon accept|withdraw|cancel|reconsiderのようにまとめてよい。
  2. コマンドの一部を単独で指す場合は、段階名のprepare・check・apply、フラグの--details・--version、引数名のparent・needsのように、その部分だけをcode表記にする。複数のコマンドに共通し、namespaceを特定できない段階名もこの形にする。
  3. コマンドという手段ではなくlifecycleの遷移概念を指すときは、specの遷移名Accept・Withdraw・Start・Release・Complete・Cancel・Reconsider・Reopenを使う。これらはQuintの型構築子でもあるが、他ツールの識別子としての除外よりこの規則を優先する。
  4. 状態はUndecided・NotStarted・InProgress・Completed・Cancelledのようにcode表記にする。遷移の動詞形Completeと、状態の過去分詞形Completedを区別する。
  5. 一般的な意味での作業の中断・完了・統合・リリースは日本語で書き、Axonのコマンド名・遷移名・状態名と同じ英単語を裸で散文に使わない。ただし、次の対象外に該当する場合を除く。
  6. Axon固有の名詞(Issue、Group、Entity、Note、lifecycle、dependency、declaration)、情報モデルのfield名や記録の名詞(actor、log、reason、parent、condition、label)、declarationのfield名(parent、needs、key、base、label)、リポジトリ内のpath・ディレクトリ名、Git・YAML・JSONL・Quint・Rustなど他ツール・他仕様の識別子、一般技術語は対象外。他ツールの識別子は節・表の冒頭または近くの文でツールを示す。その語を主語に操作の挙動を述べる文はコマンド側とみなす。たとえば「axon conditionは現在の条件だけを編集する」はコマンドの説明、「logのreason」は記録の説明となる。helpも、axon helpの実行とhelpの出力内容を区別する。
  7. skillのdescriptionは冒頭でAxon対象と分かるようにし、Axonの操作を指す場合は上記のコマンド表記にする。
  8. 記録の種類名を種類として指すとき(created・transition・label・import・resolve・note など)は、コマンド名と重なるため常にcode表記にする。6のfield名・記録の名詞としての用法(parent、condition、label)はそのまま対象外とする。

declarationはYAMLの一括宣言を指す。タイトルはtitle、本文はdescriptionを指し、両方を指すときは「タイトルと本文」と書く。文面は一般語として使えるが、項目を厳密に指定するときは項目名を列挙する。

一般の作業計画には「計画」やplanを使える。Groupの構成・範囲を指すときは「Groupと全子孫」など対象を明示し、計画の作成とGroup全体の成果の最終確認を区別する。「採用」も一般語として使えるが、方針とEntityの判断を併せて述べるときは「方針の決定」「Issueの採用」のように対象を示す。方針への賛同だけでEntityの採用や実装の権限を得たと解釈しない。

確認時は、axon --helpの全subcommand、axon import・axon storage・axon noteの下位subcommand、状態5語、遷移8語を対象に、fenced code・inline code span・frontmatterのname行を除いた散文をcase-sensitiveかつ単語境界[A-Za-z-]で検索する。残存箇所を全て分類し、Axonの操作・遷移・状態を裸で指す箇所がないことを確認する。対象語で始まるcode spanも列挙し、コマンド引用がaxonから始まることを確認する。検索は発見の補助であり、意味の判定や文脈の確認を置き換えない。