Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion amplifier_app_cli/data/skills/ten-lane-highway/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,12 @@ with the short work-item id `vbs` still resolves to lane `vbs-…`); an owner
that matches no lane, matches ambiguously, or is unclaimed is reported as such
rather than guessed at.

State lives in `BATCH_DIR` (create one per highway, e.g. `~/dev/hw-<name>`):
Use one workspace-contained `BATCH_DIR` per highway, following the caller's
workspace conventions. The caller defines where `BATCH_DIR` lives, not this skill.
Establish that path before creating batch state or launching lanes. Keep any
`HIGHWAY_LANES_ROOT` override within the same workspace.

State lives in `BATCH_DIR`:
`manifest.tsv` (scripts write), `HIGHWAY.md` (you write), `goals/` (pre-composed
goal files), `lanes/` (worktrees), `.width` (authoritative width), `infra.tsv`
(the infra ledger), `infra.owners.tsv` (which lane claimed which row),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,10 @@ small enough to watch every moving part.
In a headless one-shot, name the skill in prose instead of the bare slash
token: `amplifier run "Use the ten-lane-highway skill and drive: <outcome>"`.

2. **Intake + strategize (Phases 1–2).** The manager writes `BATCH_DIR`
(e.g. `~/dev/hw-firstrun`), a `HIGHWAY.md`, pins `BATCH_DIR/.width` to `2`,
and **pre-composes a goal file per queued item** into `BATCH_DIR/goals/`.
2. **Intake + strategize (Phases 1–2).** Establish a workspace-contained `BATCH_DIR`
following the caller's workspace conventions; the caller chooses where it
lives. Write `HIGHWAY.md` there, pin `BATCH_DIR/.width` to `2`,
and **pre-compose a goal file per queued item** into `BATCH_DIR/goals/`.

3. **Approve at the gate (Phase 3).** You will see one screen: outcome, width 2,
the first wave (lane → repo → item), the priority rationale, watch cadence.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
# lane_teardown.sh BATCH_DIR LANE reconcile [--yes] [--strict]
# lane_teardown.sh BATCH_DIR LANE audit [--open-only]
#
# BATCH_DIR highway batch dir holding infra.tsv (e.g. /home/.../hw-model-performance)
# BATCH_DIR workspace-contained batch directory chosen by the caller; holds infra.tsv
# LANE SHORT lane / work-item id — e.g. woe, 161, dt1 — NOT the lane
# directory name (`woe-lane-scoped-teardown`).
#
Expand Down
13 changes: 13 additions & 0 deletions tests/test_ten_lane_highway_readiness.py
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,19 @@ def test_watchdog_advisories_remain_append_only_across_runs(tmp_path: Path) -> N
assert len(second.splitlines()) == 2


@pytest.mark.parametrize("document", [SKILL, FIRST_RUN], ids=["skill", "first-run"])
def test_highway_batch_location_follows_caller_workspace(document: Path) -> None:
"""Guidance leaves the layout to the caller, not a personal home-directory example."""
text = document.read_text(encoding="utf-8")

assert "workspace-contained `BATCH_DIR`" in text
assert "caller" in text
teardown = (SCRIPTS / "lane_teardown.sh").read_text(encoding="utf-8")
for home_prefix in ("~/", "$HOME/", "${HOME}/", "/home/", "/Users/"):
assert home_prefix not in text
assert home_prefix not in teardown


def test_highway_docs_forbid_clearing_wake_needed_while_watchdog_runs() -> None:
docs = (
f"{SKILL.read_text(encoding='utf-8')}\n"
Expand Down
Loading