← Files NaClARCHIVED FILE
skills/nacl-tl/resources/workflows/nacl-tl-full/SKILL.md
13.6 KB · Oct 5, 2026 · 18:29 UTC
--- name: nacl-tl-full description: | Coordinate NaCl TL full lifecycle execution from graph-backed waves and tasks through development, review, verification, and final reporting with explicit Codex contracts. Use when running the full graph-aware TL workflow or compatibility with `/nacl-tl-full`. --- # NaCl TL Full For Codex ## Packaged Gateway Binding Read [`the packaged gateway binding`](../../references/workflow-gateway-contract.md) and use only its `tl-task` sequence. Allocate or claim a `Task`, retain and heartbeat its lease/fence, mutate with revision CAS and `APPROVE_TL_WRITE`, read back, then release or explicitly hand off. Never advance `done` or `verified-pending` without parseable evidence in that same mutation. Read `../nacl-tl-core/SKILL.md` and `../nacl-tl-core/references/tl-codex-contract.md` before executing this workflow. Coordinate graph-aware TL execution without assuming a separate isolated runner. TL artifacts and reports remain English. Read `../references/orchestration-model.md`, `../references/migration-rules.md`, `../references/verification-vocabulary.md`, `../nacl-core/SKILL.md`, and `../nacl-tl-conductor/SKILL.md` before executing this skill. ## Goal Compatibility This skill can be a target behind `nacl-goal` only through the `wave:<N>` alias. Load the internal workflow `../nacl-goal/SKILL.md` and `../references/goal-codex-contract.md`. Codex itself must not claim that Anthropic `/goal` ran unless the runtime exposes it and evidence exists. Load [`the packaged wave proof method`](../../nacl-goal/checks/wave.sh) as an internal reference; do not expose it as a project-cwd shell command. GOAL_PROOF is transcript evidence for the evaluator, not a replacement for local verification. Use the closed Codex status vocabulary when the wrapper cannot run. ## Contract Inputs consumed: - graph-backed `Wave` and `Task` records when graph access is available; - `.tl/master-plan.md`, `.tl/status.json`, and `.tl/tasks/` when file access is available; - project configuration for graph, task, build, test, or external workflow settings when file access is available; - downstream implementation, review, synchronization, QA, documentation, and stub reports using the closed verification vocabulary. Outputs produced: - execution plan with selected wave or task scope; - per-task and per-phase status table using only the closed verification vocabulary; - graph and `.tl/status.json` update plan, or confirmed updates when tooling and permissions are available; - final lifecycle report with evidence and unresolved problems. Downstream consumers: - human user; - TL conductor workflow; - delivery or release workflow; - project status and diagnostics workflows. ## Orchestration Rules - Use the shared Codex orchestration procedure from `../references/orchestration-model.md`. - Each phase handoff must state inputs consumed, expected output artifact or graph change, allowed verification status, downstream consumer, and handling for `VERIFIED`, `FAILED`, `PARTIALLY_VERIFIED`, `BLOCKED`, `NOT_RUN`, and `UNVERIFIED`. - Use supported tools, direct local execution, or supported delegation only when available in the current Codex environment. - Collect, parse, and inspect every downstream result before changing phase state or advancing to the next step. - When writing a terminal `Task.status` to the graph, also write `Task.verification_evidence` per `../references/verification-evidence.md`. Compose evidence from the downstream report's regression-test path (`test-GREEN:<path>`), or use `test-UNVERIFIED` per the taxonomy. A `no-test` override requires the separate exact mutate input `evidence_confirmation: CONFIRM_NO_TEST_EVIDENCE`; absent or wrong confirmation is `BLOCKED` before graph access. A terminal `done` write without parseable evidence is a writer contract violation; report `Status: BLOCKED` rather than write empty. - A review or verification phase cannot be marked `VERIFIED` unless its check actually ran and the result was inspected. - Ask for explicit user confirmation before graph writes, file writes, destructive actions, delivery actions, or the first execution phase. - If the user approved an autonomous run, continue within the confirmed scope, but still stop for missing tools, unsafe actions, or scope changes. ## Parameters Supported compatibility phrases: - `/nacl-tl-full` - `/nacl-tl-full --wave N` - `/nacl-tl-full --task UC###` - `/nacl-tl-full --feature FR-NNN` - `/nacl-tl-full --yes` Removed in W9-ci-clean-checkout: - The SKIP-PLAN full-lifecycle flag formerly accepted by this skill — Phase 0 already auto-detects an already-populated graph (Task/Wave nodes present) and skips the planning subagent launch in that case. The flag was redundant; its only remaining use was bypassing planning when the graph WAS empty, which is precisely the case planning exists to handle. There is no inline override that resurrects the flag. Removed in W3-blocking-qa: - The bulk-QA-skip flag formerly accepted by this skill — QA bypass at the full-lifecycle layer is no longer an operator flag. For stage-level skips of `LIVE_PROVIDER_SMOKE` / `PROD_GOLDEN_PATH` only, invoke `/nacl-tl-qa UC### --skip-e2e` directly. If a mandatory stage ends up `NOT_RUN`, aggregate is forced to `UNVERIFIED` and a W4 signed exception is required to advance. Bulk-bypass needs route through W4 emergency mode. Treat parameters as scope and gate preferences. They do not imply that any specific delegation mechanism exists. ## Workflow ### Phase 0: Initialization Check graph connectivity and graph schema availability when graph tools exist. Probe for `Task` and `Wave` records. If graph access is unavailable, report `BLOCKED` unless the user explicitly changes scope to a non-graph workflow. Check `.tl/` planning files when file access exists. If planning is missing, run or invoke the planning procedure only when the current environment supports it and the user confirms. If planning is already populated (Task and Wave records present in the graph), skip the planning procedure silently — the previous SKIP-PLAN flag was removed in W9-ci-clean-checkout because graph-state detection makes it unnecessary. Stop and present the detected plan, selected scope, not-run phases, and required confirmation unless `--yes` was explicitly provided. ### Phase 1: Wave 0 Technical Tasks For each technical task in scope, coordinate development and review. Contract: - Inputs: task graph record, task file when available, dependencies, and current status. - Expected output: implementation report, review report, graph update request, and status-file update request. - Downstream consumer: later waves and final report. - Verification: inspect implementation and review reports before advancing. If required implementation or review procedures are unavailable, report `BLOCKED`. If a procedure runs but evidence cannot be checked, report `UNVERIFIED`. ### Phase 2: Use Case Waves Process waves in graph order unless the user selected a single wave, task, or feature scope. Respect graph dependencies before starting a use case. Each use case lifecycle has these steps: 1. Backend development. 2. Backend review. 3. Frontend development. 4. Frontend review. 5. Backend-frontend synchronization. 6. Stub scan. 7. QA (the `nacl-tl-qa` skill applies its six-stage decomposition and aggregate rule; the bulk-QA-skip flag was removed at this layer in W3). 8. Documentation. Contract for each step: - Inputs: task file, current graph phase state, previous step result, and needed project files. - Expected output: step report, evidence, and proposed task phase transition. - Downstream consumer: next lifecycle step and final report. - Verification: parse the downstream report and map it to the closed vocabulary before advancing. Do not skip review, synchronization, stub scan, or documentation. If QA is not executed by confirmed parameter, report that step as `NOT_RUN` and make the use case aggregate `UNVERIFIED` unless later evidence verifies it. ### Phase 3: State Updates Graph is the primary state when graph tooling is available. `.tl/status.json` is secondary compatibility state when file access and write permission exist. Before writing either store, present the intended transition and ask for confirmation unless the user already confirmed autonomous writes for the current scope. If graph write cannot be completed, do not advance the phase. Report `BLOCKED` with the task, phase, and reason. If graph and file state diverge, report `UNVERIFIED` until diagnostics reconcile the state. **Remote mode (multi-user shared graph):** the above is local mode (`config.yaml` `graph.mode` absent or `local`). When `graph.mode: remote`, the graph is the SOLE source of truth and `.tl/status.json` is a best-effort per-clone cache: a successful graph write advances the phase; resume reads the graph only (no stale-cache fallback — HALT if the graph is unreachable). Before working a task, call `project MCP derive worker identity operation`, then `project MCP claim resource operation` for the exact `Task` with a stable idempotency key, bounded TTL, and `APPROVE_TL_WRITE`. Retain the returned fence, heartbeat long work with `project MCP heartbeat resource operation`, mutate only with that fence and revision CAS, and finish with `project MCP release resource operation` or an explicitly confirmed `project MCP handoff resource operation`. Stamp returned identity provenance on phase writes. Load [`the packaged remote coordination reference`](../../nacl-tl-core/references/remote-mode-coordination.md); never shell to a package path or infer one from the project cwd. ### Phase 4: Final Validation Before final reporting, verify every scoped task reached a terminal outcome in the closed vocabulary. Query graph state when possible and inspect `.tl/` state when available. Run final stub or QA checks only when tools are available and scope permits. If some checks cannot run, use `PARTIALLY_VERIFIED`, `NOT_RUN`, `BLOCKED`, or `UNVERIFIED` as appropriate. ### Phase 5: Final Report Return: ```text Item | Phase | Status | Reason | Evidence ``` Include not-run checks, blocked tools, unsatisfied phases, unchecked downstream outputs, graph-write results, file-write results, and recommended next confirmed action. ## Status Mapping Use only these verification statuses: - `VERIFIED` - `FAILED` - `PARTIALLY_VERIFIED` - `BLOCKED` - `NOT_RUN` - `UNVERIFIED` When a downstream report uses other wording, map it to the closed vocabulary and include the original wording only as evidence if needed. Do not create a new top-level status. ## Resumption When existing graph or `.tl/` state indicates incomplete progress: - identify the first incomplete phase for each scoped task; - verify dependencies before continuing; - present the resume point to the user; - ask for confirmation unless `--yes` was explicitly provided; - continue from the confirmed phase only after previous phase evidence has been inspected. If the resume point cannot be established, report `UNVERIFIED` and request diagnostics or user direction. ## Capabilities ### May Do - Coordinate graph-aware TL execution across waves, tasks, and lifecycle steps. - Read project configuration, graph state, `.tl/` files, and reports when available. - Use supported development, review, verification, and documentation procedures. - Propose or perform confirmed graph and file state updates when tools and permissions are available. - Inspect downstream outputs before advancing state. ### Must Not Do - Assume isolated delegation exists. - Select or constrain the runtime. - Modify source root skill folders. - Mark a phase `VERIFIED` without executed and inspected evidence. - Write graph state, edit files, run destructive actions, or deliver changes without the required confirmation. - Use statuses outside the closed verification vocabulary. ### Conditional Tools And Actions - Graph reads and writes require available graph tooling and confirmed scope. - File reads and writes require workspace access; writes require confirmation. - Tests, builds, QA, and external workflow updates require configured tools. - Git, delivery, release, and destructive actions require explicit user confirmation. - Delegation is conditional on Codex-supported mechanisms available in the current environment. ### Blocked Or Unverified Reporting - Use `BLOCKED` when required inputs, tools, permissions, infrastructure, or confirmation are unavailable. - Use `NOT_RUN` when a phase is intentionally not executed. - Use `PARTIALLY_VERIFIED` when only some required checks ran. - Use `UNVERIFIED` when downstream output, graph state, or file state cannot be checked. - Use `FAILED` with a reason when a phase violates its contract or new breakage is detected. ## Source Comparison - Source Claude skill path: `../../nacl-tl-full/SKILL.md` ### Preserved Methodology - Graph-backed waves and tasks as primary execution scope. - Full TL lifecycle across development, review, sync, stubs, QA, docs, and final reporting. - Resume from graph or `.tl/` state. - State consistency between graph and local TL status files. ### Removed Claude Mechanics - Runtime routing fields in frontmatter. - Assumed isolated wave and phase execution. - Source-specific execution commands for unsupported delegation. - Status labels outside the closed verification vocabulary. ### Codex Replacement Behavior - Coordinate lifecycle steps through explicit contracts and inspected outputs. - Treat graph, file, test, external workflow, and delegation actions as conditional. - Preserve start, write, delivery, and scope-change confirmation gates. - Report blocked, incomplete, not-run, unsatisfied, or unchecked outcomes with the closed vocabulary.
SHA-256: 7fb9e822ce7da749b547fd3c85c5c4aa0db20f7f8493622e6ea67162d48f7e3c