docs(recipes): annotate the keys that do nothing
deploy / build (push) Canceled after 0s
deploy / test (push) Canceled after 2m43s

phase_config::DECLARED_BUT_UNREAD lists four keys the recipes set and
nothing reads. security_hardening.toml already carried a "what is real
here and what is decoration" section and annotated its own dead keys
inline; the other five did not, so `produces = ["md"]` and
`loop = "until_no_more_int_items"` read like settings.

The risk was never the dead keys themselves — it is a reader taking
`loop = "until_no_more_int_items"` for a loop. Each now says it is inert
and points at the registry. They stay because they state the intent.

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01WZb5A2kfVfjpdwSochkuHz
This commit is contained in:
Omar Sobh
2026-09-22 15:00:24 -05:00
co-authored by Claude Opus 5
parent eb91ae0496
commit 4a3f1cc2f9
5 changed files with 23 additions and 0 deletions
+3
View File
@@ -29,6 +29,9 @@ default_team_template = "rust_sdlc"
kind = "benchmark"
order_idx = 0
[phases.config]
# INERT. `produces` is listed in phase_config::DECLARED_BUT_UNREAD —
# artifact rendering is not driven by it. Kept because it states the
# intent, annotated because a reader should not take it for a setting.
produces = ["md"]
# NOTE: `mode` is INERT — no code selects behaviour from it.
mode = "author_and_baseline"
@@ -28,6 +28,9 @@ default_team_template = "continuous_research"
kind = "research"
order_idx = 0
[phases.config]
# INERT. `produces` is listed in phase_config::DECLARED_BUT_UNREAD —
# artifact rendering is not driven by it. Kept because it states the
# intent, annotated because a reader should not take it for a setting.
produces = ["md"]
default_topology = "hub_spoke"
# `research`, not a new `read` kind. An unrecognised kind falls through to
@@ -71,6 +74,9 @@ commit_policy = "always"
kind = "research"
order_idx = 1
[phases.config]
# INERT. `produces` is listed in phase_config::DECLARED_BUT_UNREAD —
# artifact rendering is not driven by it. Kept because it states the
# intent, annotated because a reader should not take it for a setting.
produces = ["md"]
default_topology = "hub_spoke"
task = """
+4
View File
@@ -9,6 +9,10 @@ default_team_template = "rust_sdlc"
kind = "coding"
order_idx = 0
[phases.config]
# INERT. `loop` is listed in phase_config::DECLARED_BUT_UNREAD —
# iteration is max_iterations + done_when, and nothing reads this value.
# Kept because it states the intent; annotated so it is not mistaken for
# the mechanism.
loop = "single_pass"
# The planner runs `cargo tree`, `cargo outdated`, `npm outdated`,
# etc. and produces INT-XX items per stale dep.
@@ -21,6 +21,9 @@ kind = "research"
order_idx = 0
[phases.config]
# `pdf` names a format nothing generates — artifacts are served as Markdown.
# INERT. `produces` is listed in phase_config::DECLARED_BUT_UNREAD —
# artifact rendering is not driven by it. Kept because it states the
# intent, annotated because a reader should not take it for a setting.
produces = ["md"]
default_topology = "hub_spoke"
# Research PLANS; coding BUILDS. Without this the split is a fiction:
@@ -74,6 +77,10 @@ order_idx = 1
# DECLARED_BUT_UNREAD — "NOT IMPLEMENTED — phase iteration uses
# max_iterations + done_when". It is kept only so the intent stays
# visible next to the keys that actually drive the loop.
# INERT. `loop` is listed in phase_config::DECLARED_BUT_UNREAD —
# iteration is max_iterations + done_when, and nothing reads this value.
# Kept because it states the intent; annotated so it is not mistaken for
# the mechanism.
loop = "until_no_more_int_items"
# The real loop. Without `done_when` the phase never enters
# `evaluating`, is never judged, and reports `completed` whatever it
+3
View File
@@ -21,6 +21,9 @@ order_idx = 0
# `pdf` dropped — PDF rendering was removed from the delivery path and
# artifacts are served as Markdown, so asking for it named a format nothing
# generates. `security_hardening` was corrected for this; this recipe was not.
# INERT. `produces` is listed in phase_config::DECLARED_BUT_UNREAD —
# artifact rendering is not driven by it. Kept because it states the
# intent, annotated because a reader should not take it for a setting.
produces = ["md"]
default_topology = "hub_spoke"
# This recipe had NEITHER of the two keys below, which is the same defect