Skill Tracer
Skills › Compound Engineering › lfg › plan-brief.md

plan-brief.md

36 lines · skills/lfg/references/plan-brief.md at 3449230

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1# Step 1: artifact root and settled-decisions brief (LFG)
2

Step 1: artifact root and settled-decisions brief (LFG)

Raw lines 1 to 2
3## Artifact root
4
5Resolve `<root>` when you first compose a `<root>/` path, never before you need it. LFG composes only one such path: the `<root>/plans/` location where step 1's GATE checks that the plan was written. A run that stops before that check never composes a `<root>/` path and never resolves a root. Two examples: a routing-carrier blocker (a stage assignment LFG cannot pass on, as `references/stage-routing.md` defines), or a report that the task is non-software.
6
7<!-- ce-docs-root:start -->
8**Resolve the CE artifact root `<root>` before composing any artifact path.**
9
10- **Read** `docs_root` from `<repo-root>/.compound-engineering/config.yaml` only (`<repo-root>` = `git rev-parse --show-toplevel`). Do not read it from `config.local.yaml`. Unset -> `<root>` is `docs`, exactly as before.
11- **Validate** a set value: a repo-relative directory whose real, symlink-resolved path stays inside the repo and is neither the repo root nor under `.git/`. Otherwise stop with an error naming `docs_root` and the value -- never fall back to `docs`.
12- **Use** `<root>` as the sole artifact location: create it if absent, compose each path as `<root>/<subdir>` with this skill's own subdirectory, and never also read `docs`.
13<!-- ce-docs-root:end -->

Artifact root

Resolve <root> when you first compose a <root>/ path, never before you need it. LFG composes only one such path: the <root>/plans/ location where step 1's GATE checks that the plan was written. A run that stops before that check never composes a <root>/ path and never resolves a root. Two examples: a routing-carrier blocker (a stage assignment LFG cannot pass on, as references/stage-routing.md defines), or a report that the task is non-software.

<!-- ce-docs-root:start --> **Resolve the CE artifact root <root> before composing any artifact path.**

  • Read docs_root from <repo-root>/.compound-engineering/config.yaml only (<repo-root> = git rev-parse --show-toplevel). Do not read it from config.local.yaml. Unset -> <root> is docs, exactly as before.
  • Validate a set value: a repo-relative directory whose real, symlink-resolved path stays inside the repo and is neither the repo root nor under .git/. Otherwise stop with an error naming docs_root and the value -- never fall back to docs.
  • Use <root> as the sole artifact location: create it if absent, compose each path as <root>/<subdir> with this skill's own subdirectory, and never also read docs.

<!-- ce-docs-root:end -->

Raw lines 3 to 14
15## Readiness check
17An explicit `status: blocked` return is terminal even when `artifact_path` names a readable plan. Report its `phase`, `blocker`, and `recovery_path`, and its `artifact_path` when present. A plan file existing on disk is not a reason to retry planning or to move on to implementation.
19The plan the GATE checks is the path `ce-plan` reported writing this run. A file already under `<root>/plans/` that `ce-plan` did not report is not a written plan, however closely it matches the feature. This gate belongs to the plan route. An implementation-ready plan `ce-plan` wrote earlier in this session bypasses `ce-plan` per `references/intake.md`; `ce-work`'s intake verifies that plan by content, and its blocked return stops the run. When the return has neither a blocker nor a reported path, invoke `ce-plan` the single allowed second time; never accept a stale file instead.
21Inspect the returned plan before continuing past step 1's GATE. It must describe code implementation with sufficient scope, direction, and verification, and no launch-blocking question or finding. A Product Contract without implementation planning, an approach-only or answer-seeking output, or a non-code deliverable (`execution: knowledge-work`) stops the pipeline. An old readiness label cannot override the contents. `ce-work` owns verification of the active work's repository prerequisites; this gate does not duplicate that investigation.

Readiness check

An explicit status: blocked return is terminal even when artifact_path names a readable plan. Report its phase, blocker, and recovery_path, and its artifact_path when present. A plan file existing on disk is not a reason to retry planning or to move on to implementation.

The plan the GATE checks is the path ce-plan reported writing this run. A file already under <root>/plans/ that ce-plan did not report is not a written plan, however closely it matches the feature. This gate belongs to the plan route. An implementation-ready plan ce-plan wrote earlier in this session bypasses ce-plan per references/intake.md; ce-work's intake verifies that plan by content, and its blocked return stops the run. When the return has neither a blocker nor a reported path, invoke ce-plan the single allowed second time; never accept a stale file instead.

Inspect the returned plan before continuing past step 1's GATE. It must describe code implementation with sufficient scope, direction, and verification, and no launch-blocking question or finding. A Product Contract without implementation planning, an approach-only or answer-seeking output, or a non-code deliverable (execution: knowledge-work) stops the pipeline. An old readiness label cannot override the contents. ce-work owns verification of the active work's repository prerequisites; this gate does not duplicate that investigation.

Raw lines 15 to 22
Names a skill ce-plan :19
Names a skill ce-work :19
23## Settled-decisions brief
25Compose this brief from the invoking conversation and pass it with the sanitized feature request when you invoke `ce-plan`.
27The brief contains:
29- direction (1-2 lines);
30- settled decisions, each with four required fields: the decision, its provenance class (`user-directed` or `user-approved`), the rejected alternative, and a one-line reason;
31- open areas, including any `ce-pov` verdict the intake route consulted, cited as evidence with its grade and reason, never as a settled decision;
32- a standing line asking `ce-plan` to report any conflict it finds with these decisions.
34If you cannot state an entry's rejected alternative, demote it to a directive or an open area. Include only decisions about the feature being shipped. When in doubt, demote: having `ce-plan` reconsider a decision is the safe direction; carrying in a stale decision as settled is not. When there is nothing to carry, no settled decision and no `ce-pov` evidence, skip composition entirely and invoke `ce-plan` exactly as it is written in the body, with no empty brief.
36The brief is temporary: once `ce-plan` writes the plan, the plan's labeled KTDs are the record. A step-1 retry reuses the composed brief verbatim; never recompose it.

Settled-decisions brief

Compose this brief from the invoking conversation and pass it with the sanitized feature request when you invoke ce-plan.

The brief contains:

  • direction (1-2 lines);
  • settled decisions, each with four required fields: the decision, its provenance class (user-directed or user-approved), the rejected alternative, and a one-line reason;
  • open areas, including any ce-pov verdict the intake route consulted, cited as evidence with its grade and reason, never as a settled decision;
  • a standing line asking ce-plan to report any conflict it finds with these decisions.

If you cannot state an entry's rejected alternative, demote it to a directive or an open area. Include only decisions about the feature being shipped. When in doubt, demote: having ce-plan reconsider a decision is the safe direction; carrying in a stale decision as settled is not. When there is nothing to carry, no settled decision and no ce-pov evidence, skip composition entirely and invoke ce-plan exactly as it is written in the body, with no empty brief.

The brief is temporary: once ce-plan writes the plan, the plan's labeled KTDs are the record. A step-1 retry reuses the composed brief verbatim; never recompose it.

Raw lines 23 to 36
Names a skill ce-plan :25
Names a skill ce-pov :31