@tenkara/afm-linux-arm64 4.0.0-alpha.8 → 4.0.0-alpha.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/bin/afm +2 -2
  2. package/content/CHANGELOG.md +22 -0
  3. package/content/core/afm.md +1 -1
  4. package/content/ops/evolve.md +61 -9
  5. package/content/ops/reflect.md +18 -13
  6. package/content/ops/restructure.md +2 -2
  7. package/content/ops/update.md +26 -2
  8. package/content/roles/explorer.md +1 -1
  9. package/content/roles/reviewer.md +1 -1
  10. package/content/skills/adr.md +3 -3
  11. package/content/skills/analyze.md +2 -8
  12. package/content/skills/clarify.md +2 -8
  13. package/content/skills/deliver.md +4 -20
  14. package/content/skills/diagnose.md +3 -11
  15. package/content/skills/evolve.md +6 -30
  16. package/content/skills/export-template.md +2 -5
  17. package/content/skills/generalize.md +6 -22
  18. package/content/skills/gotcha.md +3 -3
  19. package/content/skills/init.md +2 -7
  20. package/content/skills/plan.md +3 -9
  21. package/content/skills/policy.md +0 -6
  22. package/content/skills/promote.md +1 -3
  23. package/content/skills/protocol.md +2 -3
  24. package/content/skills/reconcile.md +2 -6
  25. package/content/skills/refactor.md +2 -7
  26. package/content/skills/reflect.md +7 -17
  27. package/content/skills/remediate.md +3 -9
  28. package/content/skills/restructure.md +8 -14
  29. package/content/skills/rule.md +3 -4
  30. package/content/skills/specify.md +3 -9
  31. package/content/skills/tasks.md +4 -14
  32. package/content/skills/update.md +6 -4
  33. package/content/skills/verify.md +1 -3
  34. package/content/templates/evolution-report.template.md +5 -0
  35. package/package.json +1 -1
  36. package/plugin/agy/plugin.json +1 -1
  37. package/plugin/agy/skills/afm-adr/SKILL.md +7 -3
  38. package/plugin/agy/skills/afm-analyze/SKILL.md +4 -6
  39. package/plugin/agy/skills/afm-clarify/SKILL.md +4 -6
  40. package/plugin/agy/skills/afm-deliver/SKILL.md +6 -20
  41. package/plugin/agy/skills/afm-diagnose/SKILL.md +5 -9
  42. package/plugin/agy/skills/afm-evolve/SKILL.md +9 -29
  43. package/plugin/agy/skills/afm-export-template/SKILL.md +6 -5
  44. package/plugin/agy/skills/afm-generalize/SKILL.md +8 -20
  45. package/plugin/agy/skills/afm-gotcha/SKILL.md +7 -3
  46. package/plugin/agy/skills/afm-init/SKILL.md +3 -6
  47. package/plugin/agy/skills/afm-plan/SKILL.md +5 -7
  48. package/plugin/agy/skills/afm-policy/SKILL.md +2 -4
  49. package/plugin/agy/skills/afm-promote/SKILL.md +4 -2
  50. package/plugin/agy/skills/afm-protocol/SKILL.md +6 -3
  51. package/plugin/agy/skills/afm-reconcile/SKILL.md +5 -5
  52. package/plugin/agy/skills/afm-refactor/SKILL.md +3 -6
  53. package/plugin/agy/skills/afm-reflect/SKILL.md +9 -15
  54. package/plugin/agy/skills/afm-remediate/SKILL.md +5 -7
  55. package/plugin/agy/skills/afm-restructure/SKILL.md +10 -12
  56. package/plugin/agy/skills/afm-rule/SKILL.md +7 -4
  57. package/plugin/agy/skills/afm-specify/SKILL.md +5 -7
  58. package/plugin/agy/skills/afm-tasks/SKILL.md +6 -12
  59. package/plugin/agy/skills/afm-update/SKILL.md +10 -4
  60. package/plugin/agy/skills/afm-verify/SKILL.md +4 -2
  61. package/plugin/claude-code/.claude-plugin/plugin.json +1 -1
  62. package/plugin/claude-code/agents/afm-explorer.md +1 -1
  63. package/plugin/claude-code/agents/afm-reviewer.md +1 -1
  64. package/plugin/claude-code/skills/adr/SKILL.md +7 -3
  65. package/plugin/claude-code/skills/analyze/SKILL.md +4 -6
  66. package/plugin/claude-code/skills/clarify/SKILL.md +4 -6
  67. package/plugin/claude-code/skills/deliver/SKILL.md +6 -20
  68. package/plugin/claude-code/skills/diagnose/SKILL.md +5 -9
  69. package/plugin/claude-code/skills/evolve/SKILL.md +9 -29
  70. package/plugin/claude-code/skills/export-template/SKILL.md +6 -5
  71. package/plugin/claude-code/skills/generalize/SKILL.md +8 -20
  72. package/plugin/claude-code/skills/gotcha/SKILL.md +7 -3
  73. package/plugin/claude-code/skills/init/SKILL.md +3 -6
  74. package/plugin/claude-code/skills/plan/SKILL.md +5 -7
  75. package/plugin/claude-code/skills/policy/SKILL.md +2 -4
  76. package/plugin/claude-code/skills/promote/SKILL.md +4 -2
  77. package/plugin/claude-code/skills/protocol/SKILL.md +6 -3
  78. package/plugin/claude-code/skills/reconcile/SKILL.md +5 -5
  79. package/plugin/claude-code/skills/refactor/SKILL.md +3 -6
  80. package/plugin/claude-code/skills/reflect/SKILL.md +9 -15
  81. package/plugin/claude-code/skills/remediate/SKILL.md +5 -7
  82. package/plugin/claude-code/skills/restructure/SKILL.md +10 -12
  83. package/plugin/claude-code/skills/rule/SKILL.md +7 -4
  84. package/plugin/claude-code/skills/specify/SKILL.md +5 -7
  85. package/plugin/claude-code/skills/tasks/SKILL.md +6 -12
  86. package/plugin/claude-code/skills/update/SKILL.md +10 -4
  87. package/plugin/claude-code/skills/verify/SKILL.md +4 -2
  88. package/plugin/opencode/agents/afm-explorer.md +9 -0
  89. package/plugin/opencode/agents/afm-reviewer.md +9 -0
  90. package/plugin/opencode/skills/afm-adr/SKILL.md +7 -3
  91. package/plugin/opencode/skills/afm-analyze/SKILL.md +4 -6
  92. package/plugin/opencode/skills/afm-clarify/SKILL.md +4 -6
  93. package/plugin/opencode/skills/afm-deliver/SKILL.md +6 -20
  94. package/plugin/opencode/skills/afm-diagnose/SKILL.md +5 -9
  95. package/plugin/opencode/skills/afm-evolve/SKILL.md +9 -29
  96. package/plugin/opencode/skills/afm-export-template/SKILL.md +6 -5
  97. package/plugin/opencode/skills/afm-generalize/SKILL.md +8 -20
  98. package/plugin/opencode/skills/afm-gotcha/SKILL.md +7 -3
  99. package/plugin/opencode/skills/afm-init/SKILL.md +3 -6
  100. package/plugin/opencode/skills/afm-plan/SKILL.md +5 -7
  101. package/plugin/opencode/skills/afm-policy/SKILL.md +2 -4
  102. package/plugin/opencode/skills/afm-promote/SKILL.md +4 -2
  103. package/plugin/opencode/skills/afm-protocol/SKILL.md +6 -3
  104. package/plugin/opencode/skills/afm-reconcile/SKILL.md +5 -5
  105. package/plugin/opencode/skills/afm-refactor/SKILL.md +3 -6
  106. package/plugin/opencode/skills/afm-reflect/SKILL.md +9 -15
  107. package/plugin/opencode/skills/afm-remediate/SKILL.md +5 -7
  108. package/plugin/opencode/skills/afm-restructure/SKILL.md +10 -12
  109. package/plugin/opencode/skills/afm-rule/SKILL.md +7 -4
  110. package/plugin/opencode/skills/afm-specify/SKILL.md +5 -7
  111. package/plugin/opencode/skills/afm-tasks/SKILL.md +6 -12
  112. package/plugin/opencode/skills/afm-update/SKILL.md +10 -4
  113. package/plugin/opencode/skills/afm-verify/SKILL.md +4 -2
@@ -10,7 +10,7 @@ description: |
10
10
 
11
11
  > **Questions in this host.** `afm ask <op>` prompts only in a terminal, and your shell tool has none: it exits 2. Run `afm ask <op> --json` instead and put each pending question to the operator with the host's question tool when it has one, and otherwise in chat as a numbered list: the `prompt`, then the `options` with their descriptions, the recommended one first and marked. Wait for the answer. Then record each choice with `afm answer <op> <id> <label>` (one label per selected option). Run `afm ask <op>` again: `all questions answered` means the op may go on.
12
12
 
13
- Atomic skill of AFM. The canonical procedure is the op file that `afm path ops/remediate.md` prints.
13
+ > **Procedure.** Run `afm read ops/remediate.md` and follow it; read an on-demand section when its condition holds.
14
14
 
15
15
  ## When NOT to activate
16
16
 
@@ -26,16 +26,14 @@ Use `afm.md § 5.1` for an in-task retry at the moment of the error. Use `afm-go
26
26
 
27
27
  ## Procedure
28
28
 
29
- Read the op (`afm path ops/remediate.md`) end to end and follow it literally. It includes the promotion gate (#5): 1 user correction OR at least 2 mechanical occurrences promote a failure. A transient failure does not promote. It also includes classification through the rubric `rubrics/failure-classification.md` (`afm path rubrics/failure-classification.md`). For each delta, propose the artifact (procedure or learning) and cite the source `sig=` (hard rule 19). Ask the artifact question with `afm ask remediate --scope <sig>`, materialize the result, close the signature with `afm failures close --sig <sig> --as remediated`, and report it (#6).
29
+ The op includes the promotion gate (#5): 1 user correction OR at least 2 mechanical occurrences promote a failure. A transient failure does not promote. It also includes classification through the rubric `rubrics/failure-classification.md` (`afm path rubrics/failure-classification.md`). For each delta, propose the artifact (procedure or learning) and cite the source `sig=` (hard rule 19). Ask the artifact question with `afm ask remediate --scope <sig>`, materialize the result, close the signature with `afm failures close --sig <sig> --as remediated`, and report it (#6).
30
30
 
31
31
  ## Invariant principles
32
32
 
33
- The single canonical source is `PRINCIPLES.md` (`afm path PRINCIPLES.md`). See in particular #3 (CRITIC corollary — recognition by tool, not self-judgment). See also #5 (do not promote a failure without recurrence or an oracle) and #6 (propose only, the human approves).
33
+ Most relevant here: #3 (CRITIC corollary — recognition by tool, not self-judgment). See also #5 (do not promote a failure without recurrence or an oracle) and #6 (propose only, the human approves).
34
34
 
35
35
  ## Continuous doctrine
36
36
 
37
- The `reconcile` skill owns passive mode, and it is always on. It reads `afm failures promotable` at the end of the turn and can propose remediation with no explicit command. The `evolve` cycle uses the failure events as evidence for `reflect`, toward a final remediation. This skill is the active record of the loop.
37
+ Passive mode (`afm-reconcile`) is always on. It reads `afm failures promotable` at the end of the turn and can propose remediation with no explicit command. The `afm-evolve` cycle uses the failure events as evidence for `afm-reflect`, toward a final remediation. This skill is the active record of the loop.
38
38
 
39
- ## Version
40
-
41
- Content version: `afm version` prints it.
39
+ **Principles and version.** `afm path PRINCIPLES.md` (universals §1-8 apply). `afm version` prints the version; history: `afm path CHANGELOG.md`.
@@ -10,9 +10,9 @@ description: |
10
10
 
11
11
  > **Questions in this host.** `afm ask <op>` prompts only in a terminal, and your shell tool has none: it exits 2. Run `afm ask <op> --json` instead and put each pending question to the operator with the host's question tool when it has one, and otherwise in chat as a numbered list: the `prompt`, then the `options` with their descriptions, the recommended one first and marked. Wait for the answer. Then record each choice with `afm answer <op> <id> <label>` (one label per selected option). Run `afm ask <op>` again: `all questions answered` means the op may go on.
12
12
 
13
- This is a mechanism skill of AFM. The canonical procedure is the op file that `afm path ops/restructure.md` prints.
13
+ > **Procedure.** Run `afm read ops/restructure.md` and follow it; read an on-demand section when its condition holds.
14
14
 
15
- > **Carve-out (does not overlap existing ops):** `diagnose` A1 finds a **dead reference** (the path does not exist). `restructure` staleness finds a path that **exists but changed** while the doc did not. `reconcile` adds **missing** information. `restructure` relocates information that **exists but sits in the wrong place**. `reflect` targets **clarity**. `restructure` targets **location and freshness**. `evolve` is the **orchestrator** that composes this skill when `diagnose` flags staleness or bloat.
15
+ > **Carve-out (does not overlap existing ops):** `afm-diagnose` A1 finds a **dead reference** (the path does not exist). `restructure` staleness finds a path that **exists but changed** while the doc did not. `afm-reconcile` adds **missing** information. `restructure` relocates information that **exists but sits in the wrong place**. `afm-reflect` targets **clarity**. `restructure` targets **location and freshness**. `afm-evolve` is the **orchestrator** that composes this skill when `afm-diagnose` flags staleness or bloat.
16
16
  >
17
17
  > **Maturity (honest YAGNI):** the actionable core today is **staleness** (from git) plus **findability**. **Temperature tiering** (always-hot vs on-demand) is an **opt-in** ADR proposal, only for a doc that has actually outgrown its size. Small docs do not need it.
18
18
 
@@ -20,7 +20,7 @@ This is a mechanism skill of AFM. The canonical procedure is the op file that `a
20
20
 
21
21
  This is a disambiguation guide for a skill that has already activated. It does not gate activation, so it stays in the body, not in the resident listing.
22
22
 
23
- A path that does not exist belongs to `afm-diagnose` (A1). Staleness means the path exists but changed. Information never documented belongs to `reconcile` → `afm-gotcha` or `afm-rule`. An ambiguous doc belongs to `afm-reflect`. Merging gotchas belongs to `afm-generalize`. The full cycle belongs to `afm-evolve`.
23
+ A path that does not exist belongs to `afm-diagnose` (A1). Staleness means the path exists but changed. Information never documented belongs to passive mode (`afm-reconcile`) → `afm-gotcha` or `afm-rule`. An ambiguous doc belongs to `afm-reflect`. Merging gotchas belongs to `afm-generalize`. The full cycle belongs to `afm-evolve`.
24
24
 
25
25
  ## Pre-check
26
26
 
@@ -30,25 +30,23 @@ A path that does not exist belongs to `afm-diagnose` (A1). Staleness means the p
30
30
 
31
31
  ## Procedure
32
32
 
33
- Read the op (`afm path ops/restructure.md`) end to end. Follow it literally. Use these five steps.
33
+ Use these five steps.
34
34
 
35
35
  1. **Staleness scan.** `afm doctor --json` runs it (findings with axis `staleness` and `dead-gotcha`); read them. The git trigger fires in two cases. First case: a path cited in the doc has a later last commit than the doc. Second case: the doc has been stale for more than N commits. A hit is a candidate, not a verdict. The scan never rewrites the doc on its own.
36
- 2. **Findability.** Relocate or cross-reference information that exists but sits buried or in the wrong doc. Cite both locations. Route information that is genuinely missing to `reconcile`.
36
+ 2. **Findability.** Relocate or cross-reference information that exists but sits buried or in the wrong doc. Cite both locations. Route information that is genuinely missing to passive mode (`afm-reconcile`).
37
37
  3. **Temperature partition.** Propose a hot/on-demand loading strategy as an opt-in ADR. Do this only when a doc has outgrown its size. Preserve 100% of the content.
38
- 4. **Its own gate.** This gate is load-bearing and earned, one `afm ask restructure --scope <item-slug>` per finding. It follows the **shared-proposal discipline** in `evolve.md` (`afm path ops/evolve.md`), instead of a duplicate copy of that discipline. `evolve` suppresses this gate when it runs.
39
- 5. **Record.** Write the result to `docs/evolution/NNN-<date>.md`. Suggest `promote` if the finding generalizes.
38
+ 4. **Its own gate.** This gate is load-bearing and earned, one `afm ask restructure --scope <item-slug>` per finding. It follows the **shared-proposal discipline** in `evolve.md` (`afm path ops/evolve.md`), instead of a duplicate copy of that discipline. `afm-evolve` suppresses this gate when it runs.
39
+ 5. **Record.** Write the result to `docs/evolution/NNN-<date>.md`. Suggest `afm-promote` if the finding generalizes.
40
40
 
41
41
  ## Invariant principles
42
42
 
43
- The single canonical source is `PRINCIPLES.md` (`afm path PRINCIPLES.md`). Universal principles §1-8 apply here. Four principles matter most for this skill.
43
+ Most relevant here:
44
44
 
45
45
  - #2: get git evidence before you propose a change.
46
46
  - #3: staleness needs an executable git trigger.
47
- - #4/#5: missing product content becomes `[TBD]` or goes to `reconcile`. Never invent it.
47
+ - #4/#5: missing product content becomes `[TBD]` or goes to passive mode (`afm-reconcile`). Never invent it.
48
48
  - #6/#8: self-check the work, then pass an earned gate.
49
49
 
50
50
  **No new principle here.** `restructure` is a composed materialization. The doctrine lives in the op file.
51
51
 
52
- ## Version
53
-
54
- Content version: `afm version` prints it.
52
+ **Principles and version.** `afm path PRINCIPLES.md` (universals §1-8 apply). `afm version` prints the version; history: `afm path CHANGELOG.md`.
@@ -9,9 +9,10 @@ description: |
9
9
 
10
10
  > **Questions in this host.** `afm ask <op>` prompts only in a terminal, and your shell tool has none: it exits 2. Run `afm ask <op> --json` instead and put each pending question to the operator with the host's question tool when it has one, and otherwise in chat as a numbered list: the `prompt`, then the `options` with their descriptions, the recommended one first and marked. Wait for the answer. Then record each choice with `afm answer <op> <id> <label>` (one label per selected option). Run `afm ask <op>` again: `all questions answered` means the op may go on.
11
11
 
12
- Atomic skill of `afm`. The canonical procedure is the op `afm path ops/rule`. The CLI owns the number, the
13
- rule file, the index line and the runner skeleton, and refuses a rule with no honest trigger form. This
14
- skill keeps only the judgment.
12
+ > **Procedure.** Run `afm read ops/rule.md` and follow it; read an on-demand section when its condition holds.
13
+
14
+ The CLI owns the number, the rule file, the index line and the runner skeleton, and refuses a rule with no
15
+ honest trigger form. This skill keeps only the judgment.
15
16
 
16
17
  ## When NOT to activate
17
18
 
@@ -38,9 +39,11 @@ that already exist.
38
39
 
39
40
  ## Invariant principles
40
41
 
41
- Single canonical source: `afm path PRINCIPLES`. Universals §1-8 apply. Note especially #3 (a hard rule needs
42
+ Most relevant here: #3 (a hard rule needs
42
43
  a mechanical trigger, or it is a principle instead) and #6 (autonomy-first: materialize the change and
43
44
  report it).
44
45
 
45
46
  Passive mode (`afm-reconcile`) is always on and can propose `afm-rule` when it detects the signal "the user
46
47
  corrected an approach with a reusable rule".
48
+
49
+ **Principles and version.** `afm path PRINCIPLES.md` (universals §1-8 apply). `afm version` prints the version; history: `afm path CHANGELOG.md`.
@@ -9,11 +9,11 @@ description: |
9
9
 
10
10
  > **Questions in this host.** `afm ask <op>` prompts only in a terminal, and your shell tool has none: it exits 2. Run `afm ask <op> --json` instead and put each pending question to the operator with the host's question tool when it has one, and otherwise in chat as a numbered list: the `prompt`, then the `options` with their descriptions, the recommended one first and marked. Wait for the answer. Then record each choice with `afm answer <op> <id> <label>` (one label per selected option). Run `afm ask <op>` again: `all questions answered` means the op may go on.
11
11
 
12
- An atomic skill. The procedure lives in the op: read it with `afm path ops/specify.md`, end to end, and follow it literally.
12
+ > **Procedure.** Run `afm read ops/specify.md` and follow it; read an on-demand section when its condition holds.
13
13
 
14
14
  ## When NOT to activate
15
15
 
16
- A trivial change (no feature folder needed) goes straight to the `afm.md § 2` loop. A full end-to-end delivery is `deliver`, which composes this op.
16
+ A trivial change (no feature folder needed) goes straight to the `afm.md § 2` loop. A full end-to-end delivery is `afm-deliver`, which composes this op.
17
17
 
18
18
  ## Pre-check
19
19
 
@@ -25,12 +25,10 @@ The number comes from `afm next-id feature`, never by hand. What is left to you
25
25
 
26
26
  ## Invariant principles
27
27
 
28
- Single canonical source: `afm path PRINCIPLES.md`. Universals §1-8 apply. In particular #2 (discover-first: compute the heuristic and the US from the scan), #5 (never invent a success criterion) and #6 (autonomy-first).
28
+ Most relevant here: #2 (discover-first: compute the heuristic and the US from the scan), #5 (never invent a success criterion) and #6 (autonomy-first).
29
29
 
30
30
  ## Continuous doctrine
31
31
 
32
- Passive mode is the always-on `reconcile` skill. This skill covers only the opening of the feature.
32
+ Passive mode (`afm-reconcile`) is always on. This skill covers only the opening of the feature.
33
33
 
34
- ## Version
35
-
36
- `afm version`. History: `afm path CHANGELOG.md`.
34
+ **Principles and version.** `afm path PRINCIPLES.md` (universals §1-8 apply). `afm version` prints the version; history: `afm path CHANGELOG.md`.
@@ -7,28 +7,22 @@ description: |
7
7
 
8
8
  # AFM — Tasks
9
9
 
10
- An atomic skill. The procedure lives in the op: read it with `afm path ops/tasks.md`, end to end, and follow it literally.
10
+ > **Procedure.** Run `afm read ops/tasks.md` and follow it; read an on-demand section when its condition holds.
11
11
 
12
12
  ## When NOT to activate
13
13
 
14
- There is no `plan.md` yet: run `afm-plan` first. An end-to-end delivery is `deliver`, which composes this op.
14
+ There is no `plan.md` yet: run `afm-plan` first. An end-to-end delivery is `afm-deliver`, which composes this op.
15
15
 
16
16
  ## Pre-check
17
17
 
18
18
  Run `afm preflight` (exit 3: stop and suggest `afm-init` or `afm-refactor`). Run `afm feature status <NNN> --json`: a non-empty `blockers` is an open `[NEEDS CLARIFICATION:]` in the plan. That is a hard refusal with no override, not a question.
19
19
 
20
- ## Procedure
20
+ ## Principles
21
21
 
22
- Create the file with the generator (`afm new feature-tasks --feature NNN-slug`), then add every task with `afm task add <NNN> --kind <k> --text <t>`: setup tasks, then for each spec scenario a red task (`--scenario N`) and the green task that closes it (`--closes Txxx`), an optional refactor, the validation task of each plan boundary (`--validates <boundary name>`), and one reconcile task, last. Never write a task by hand: the tasks live in the frontmatter `tasks:` list, and the CLI assigns the id and validates the item. Mark `--parallel` only where a task does not depend on the one before it; a green never is. Give every task a `US-NNN` or `RF-NN` (`--refs`). The CLI refuses an item that breaks a lint rule. Then run `afm feature lint <NNN>` and fix what it reports until it exits 0: a missing task with `afm task add`, a wrong field or kind with `afm task set <NNN> <Txxx> --<field> <value>` (`--clear <field>` clears one), a task that should not exist with `afm task remove <NNN> <Txxx>`. Never edit the YAML by hand. The reconcile task closes the `status:` keys; close each task with `afm task done`. Autonomy-first: write and report.
23
-
24
- ## Invariant principles
25
-
26
- Single canonical source: `afm path PRINCIPLES.md`. Universals §1-8 apply. In particular #5 (every task traces to a US or RF) and rule 1 (TDD: no green task without the red task it closes).
22
+ Most relevant here: #5 (every task traces to a US or RF) and rule 1 (TDD: no green task without the red task it closes).
27
23
 
28
24
  ## Continuous doctrine
29
25
 
30
- Passive mode is the always-on `reconcile` skill. This skill covers only the task list.
31
-
32
- ## Version
26
+ Passive mode (`afm-reconcile`) is always on. This skill covers only the task list.
33
27
 
34
- `afm version`. History: `afm path CHANGELOG.md`.
28
+ **Principles and version.** `afm path PRINCIPLES.md` (universals §1-8 apply). `afm version` prints the version; history: `afm path CHANGELOG.md`.
@@ -9,8 +9,9 @@ description: |
9
9
 
10
10
  > **Questions in this host.** `afm ask <op>` prompts only in a terminal, and your shell tool has none: it exits 2. Run `afm ask <op> --json` instead and put each pending question to the operator with the host's question tool when it has one, and otherwise in chat as a numbered list: the `prompt`, then the `options` with their descriptions, the recommended one first and marked. Wait for the answer. Then record each choice with `afm answer <op> <id> <label>` (one label per selected option). Run `afm ask <op>` again: `all questions answered` means the op may go on.
11
11
 
12
- This is the sync skill of `afm`. The canonical procedure is the op `afm path ops/update`. The CLI runs the
13
- codemod registry, proves each op and moves the pin. This skill keeps the judgment.
12
+ > **Procedure.** Run `afm read ops/update.md` and follow it; read an on-demand section when its condition holds.
13
+
14
+ The CLI runs the codemod registry, proves each op and moves the pin. This skill keeps the judgment.
14
15
 
15
16
  > **Carve-out (does not overlap existing ops):** `afm-init` and `afm-refactor` **create** the instance
16
17
  > (bootstrap). `update` brings an **existing** instance forward, the path that `afm-refactor` refuses.
@@ -44,15 +45,20 @@ the run. A pin **ahead** of the binary is an anomaly: report it, never roll it b
44
45
  4. **Language migration** (when the instance is not English): read `prd.md` § 11.1 FIRST and derive the
45
46
  excluded scope from it, and only then read a file. `[TBD]` there stops the step and asks
46
47
  `afm ask update-strings`. It never picks a language. The artifacts question is
47
- `afm ask update-artifacts`.
48
+ `afm ask update-artifacts`. On migrate, run the rewrite as one orchestrated batch through
49
+ parallel subagents through the `task` tool, with a light model per agent (the smallest model of the configured provider) for the rewrite and the loss
50
+ check. Escalate only a flagged file to a capable model. The session model keeps the excluded scope and
51
+ the final gate.
48
52
  5. Post-conditions: `afm index --check` returns 0 and the plugin boundary stays clean. Report in chat what
49
53
  migrated and what stayed pending. Under `afm-evolve`, feed it to `docs/evolution/`.
50
54
 
51
55
  ## Invariant principles
52
56
 
53
- Single canonical source: `afm path PRINCIPLES`. Universals §1-8 apply. Follow #2 (discover-first): the proof of
57
+ Most relevant here: #2 (discover-first): the proof of
54
58
  need is the grep that shows what is missing. Follow #4/#5: materialize only what the plugin already provides
55
59
  ready-made, and never invent missing product content. Follow #6 (autonomy-first with a gate). Bright line
56
60
  #7 applies: only **read** the plugin, and write only to the instance.
57
61
 
58
62
  **No new principle here.** `update` is composed materialization. The doctrine lives in the op file.
63
+
64
+ **Principles and version.** `afm path PRINCIPLES.md` (universals §1-8 apply). `afm version` prints the version; history: `afm path CHANGELOG.md`.
@@ -9,7 +9,7 @@ description: |
9
9
 
10
10
  > **Questions in this host.** `afm ask <op>` prompts only in a terminal, and your shell tool has none: it exits 2. Run `afm ask <op> --json` instead and put each pending question to the operator with the host's question tool when it has one, and otherwise in chat as a numbered list: the `prompt`, then the `options` with their descriptions, the recommended one first and marked. Wait for the answer. Then record each choice with `afm answer <op> <id> <label>` (one label per selected option). Run `afm ask <op>` again: `all questions answered` means the op may go on.
11
11
 
12
- Atomic skill of `afm`. The canonical procedure is the op `afm path ops/verify`.
12
+ > **Procedure.** Run `afm read ops/verify.md` and follow it; read an on-demand section when its condition holds.
13
13
 
14
14
  ## When not to activate
15
15
 
@@ -30,4 +30,6 @@ agent actor. Report the tier that resulted and what it means.
30
30
 
31
31
  ## Invariant principles
32
32
 
33
- Single canonical source: `afm path PRINCIPLES`. Universals §1-8 apply. #5 is load-bearing here.
33
+ Most relevant here: #5 is load-bearing.
34
+
35
+ **Principles and version.** `afm path PRINCIPLES.md` (universals §1-8 apply). `afm version` prints the version; history: `afm path CHANGELOG.md`.