UNRELEASED DEVELOPMENT SNAPSHOT · READ-ONLY EXCERPT
skills/full-engineering-pass/SKILL.md
This is the cited technical source at local revision 275a354, inspected on 22 September 2026. It differs from the public release. This reference publishes only the cited sections, not an installable release or the development branch.
Line numbers refer to the complete recorded file. Uncited lines are omitted. Full-file SHA-256: 9509beadf3288c775786bc2173e4350ae09aa9562fec89979954b15eaa2a7a0c.
1
---2
name: full-engineering-pass3
layer: foundation4
workflow_root: true5
description: Use for a customer engagement or major release that needs the whole engineering picture at once — composes all five domain modules (architecture, data, security, devops, testing) in dependency order. One invocation produces architecture decisions, a data model, a security posture, an ops plan, and quality validation together.6
color: cyan7
tools: Read, Write, Edit, Bash, Grep, Glob8
voice: internal9
cli_support: [claude-code, codex]10
necessity: STRONGLY_RECOMMENDED11
gap_if_skipped: "Customer engagements + major releases run with no end-to-end engineering discipline. Each module skipped is a class of debt that surfaces in production — either as architectural regret, schema corruption, security audit fail, ops incident, or undetected regression. The composition is what makes the 5 modules add up to more than their sum."12
navigation:13
primary_intent: produce end-to-end engineering depth (architecture + data + security + ops + quality) for customer engagement or major release14
triggers:15
- customer engagement requiring full evidence package16
- new service production-ready release prep… omitted uncited lines …
176
if [ "${#final_modules[@]}" -eq 0 ]; then177
echo "ERROR: no modules to run (all available skipped or missing)"178
exit 1179
fi180
```182
### Step 4 — Dispatch by DAG stage184
```bash185
mkdir -p .claude/runtime/state/full-engineering-pass186
state_file=".claude/runtime/state/full-engineering-pass/00-state.md"187
# Unified audit writer → .claude/runtime/audit/full-engineering-pass.jsonl188
source "${LINTEL_SOURCE_ROOT:-$(git rev-parse --show-toplevel)}/bin/_audit.sh"190
declare -A module_score191
declare -A module_status193
# ─── Stage 1: TA ──────────────────────────────────────194
if [[ " ${final_modules[*]} " =~ " ta " ]]; then195
echo "════ Stage 1: TA (tech-architecture) ════"196
/li:ta full || module_status[ta]="FAILED"197
module_score[ta]=$(read_module_score ta)198
forge_envelope phase_transition full-engineering-pass ta--complete brief .claude/runtime/state/ta/...199
fi… omitted uncited lines …
269
[ "${module_status[$module]:-}" = "FAILED" ] && ship_verdict="RED"270
done272
# Missing modules → DONE_WITH_CONCERNS273
[ "${#missing_modules[@]}" -gt 0 ] && [ "$ship_verdict" = "GREEN" ] && ship_verdict="YELLOW"274
```276
### Step 7 — Audit + emit composition report278
```bash279
ts=$(date -u +"%Y-%m-%dT%H:%M:%SZ")280
out=".claude/runtime/state/full-engineering-pass/composition-report-$ts.md"281
{282
echo "# Full engineering pass — $(date -u +%Y-%m-%dT%H:%M:%SZ)"283
echo "## Aggregate score: $aggregate_score / 100"284
echo "## SHIP verdict: $ship_verdict"285
echo ""286
echo "## Per-module scores"287
for module in "${final_modules[@]}"; do288
echo "- $module: ${module_score[$module]}/100 (${module_status[$module]:-DONE})"289
done290
if [ "${#missing_modules[@]}" -gt 0 ]; then291
echo ""292
echo "## Missing modules (skipped gracefully)"293
for module in "${missing_modules[@]}"; do294
echo "- $module (not present on this branch)"295
done296
fi297
echo ""298
echo "## Cross-module artifacts produced"299
echo "- .claude/runtime/state/ta/ (architecture decisions, ADRs, contracts, NFRs)"300
echo "- .claude/runtime/state/da/ (data model, migrations, retention)"301
echo "- .claude/runtime/state/sc/ (threat model, secrets, auth, compliance, audit)"302
echo "- .claude/runtime/state/dh/ (deployment, observability, SLO, cost, on-call)"303
echo "- .claude/runtime/state/tq/ (coverage, perf budget, contracts, regression, chaos)"304
} > "$out"306
# One line via the unified writer (ts/operator/cycle_id come from the envelope)307
audit_log full-engineering-pass full_engineering_pass_complete "aggregate_score=$aggregate_score" \308
"modules_run=${#final_modules[@]}" "modules_missing=${#missing_modules[@]}" "verdict=$ship_verdict"… omitted uncited lines …
329
- Pre-Stage 3: if either DA or SC BLOCKED, surface gap, ask to refine or skip330
- Pre-Stage 4: same as Stage 3331
- Pre-SHIP: if aggregate < 80, surface module-level breakdown, ask to re-loop or accept-with-concern333
## Hop-in support335
YES via `--resume`:337
```bash338
/li:full-engineering-pass --resume339
# reads .claude/runtime/state/full-engineering-pass/00-state.md340
# continues from the stage where the prior run paused341
```343
## Integration345
**Reads:**346
- All 5 module SKILL.md files (or as-many as exist)347
- optional approved work map and swarm coordination for the DA/SC ready wave348
- `lib/pack-resolver.sh` for pack policy349
- `~/.lintel/profile.yaml` `engineering.*` block (per-module preferences)351
**Writes:**352
- `.claude/runtime/state/full-engineering-pass/composition-report-<ts>.md`353
- `.claude/runtime/state/full-engineering-pass/00-state.md` (for `--resume`)354
- `.claude/runtime/audit/full-engineering-pass.jsonl`355
- Brief Forge envelopes through the standard gate (one per stage transition)