Task Breakdown: aws-sandbox npm Package Release v0.3.18
Status: ACTIVE Created: 2026-02-02 Updated: 2026-02-02 (RQ5 Upgrade: Claude Code Component Matrix) Spec Reference: specs/aws-sandbox/spec.md Plan Reference: specs/aws-sandbox/plan.md ADLC Phase: 1.6 (Task Breakdown & Estimation)
Claude Code Component Matrix (RQ5 Upgrade)β
Task-to-Component Mapping with WHY/WHAT-IF/VALUE/PURPOSEβ
| Task | Agent | Command | Skill | MCP | Hook | WHY | WHAT-IF Not Used | VALUE | PURPOSE |
|---|---|---|---|---|---|---|---|---|---|
| T1.1 | product-owner | /speckit.specify | - | - | SubagentStop | CHK049 | Requirements drift | 80% scope creep prevention | Define WHAT to build |
| T1.2 | cloud-architect | /speckit.plan | operational-excellence | - | SubagentStop | CHK050 | Architecture debt | 90% issues caught pre-coding | Define HOW to build |
| T1.3 | product-owner | /speckit.tasks | - | - | SubagentStop | Dependencies | Wrong execution order | 60% coordination reduction | Enable parallel execution |
| T1.4 | HITL + product-owner | - | - | - | validate-hitl | Gate | Unauthorized deploys | 100% control | HITL approval gate |
| T2.1 | infrastructure-engineer | /cdk:synth | building-cdk-stacks | awslabs.cdk-toolkit | validate-bash | CHK051 | Build errors | Automation | Compile TypeScript |
| T2.2 | infrastructure-engineer | /cdk:pack | releasing-npm-package | - | validate-bash | Consumer mode | v0.3.8 incident repeat | Package integrity | Bundle app.cjs |
| T2.3 | qa-engineer | - | testing-cdk-infrastructure | - | - | Verification | Undetected build failures | Quality gate | Verify build outputs |
| T3.1 | qa-engineer | /cdk:test-functional | testing/tier1 | - | - | CHK053 | Untested code | 70-80% coverage | Tier 1 snapshot tests |
| T3.2 | qa-engineer | /cdk:test-integration | testing/tier2 | localstack | - | CHK053 | Integration gaps | +15-20% coverage | Tier 2 LocalStack tests |
| T3.3 | qa-engineer | /cdk:release (Phase 3.5) | releasing-npm-package | localstack | validate-bash | CHK053 | Broken npm publish | 100% prevention | Consumer E2E validation |
| T3.4 | qa-engineer | - | operational-excellence | - | detect-nato | Evidence | NATO violation | Audit trail | Capture evidence |
| T3.5 | qa-engineer | - | - | - | - | Version | Wrong version published | Integrity | Verify version |
| T3.6 | HITL + cloud-architect | - | - | - | validate-hitl | Gate | Unauthorized publish | 100% control | npm publish approval |
| T3.7 | infrastructure-engineer | /cdk:release | releasing-npm-package | - | validate-bash | Release | Manual errors | Automation | npm publish |
Component Utilization Summaryβ
| Category | Available | Used | Utilization |
|---|---|---|---|
| Agents | 9 | 4 (product-owner, cloud-architect, infrastructure-engineer, qa-engineer) | 44% |
| Commands | 13 CDK | 6 (/speckit., /cdk:synth, /cdk:test-, /cdk:release) | 46% |
| Skills | 12 | 4 (testing-cdk-infrastructure, releasing-npm-package, building-cdk-stacks, operational-excellence) | 33% |
| MCPs | 5 | 2 (localstack, awslabs.cdk-toolkit) | 40% |
| Hooks | 3 | 3 (validate-bash, validate-hitl, detect-nato) | 100% |
Missing Components (P0 Priority)β
| Component | Type | Purpose | Impact if Missing |
|---|---|---|---|
/cdk:consumer-e2e | Command | Orchestrate 5-layer Phase 3.5 | Manual execution, error-prone |
validate-hitl-approval.sh | Hook | Gate npm publish on HITL approval | Unauthorized publishes |
pre-execution-coordination-check.sh | Hook | Enforce product-owner + cloud-architect FIRST | STANDALONE_EXECUTION |
Task Dependency Graphβ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PHASE 1: PLAN β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β T1.1 spec.md β
βββ¬βββΆ T1.4 HITL Approval β
β T1.2 plan.md β
βββ€ β β
β T1.3 tasks.md β
ββ β β
ββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββ
βΌ
ββββββββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββ
β PHASE 2: BUILD β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β T2.1 Build TypeScript βββΆ T2.2 Build app.cjs βββΆ T2.3 Verify β
ββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββ
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PHASE 3: TEST β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β T3.1 Tier 1 β
βββ¬βββΆ T3.3 Phase 3.5 Consumer E2E (CRITICAL) β
β T3.2 Tier 2 β
βββ β β
β βΌ β
β T3.4 Evidence Capture β
ββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββ
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PHASE 3.6: RELEASE β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β T3.5 Version Check βββΆ T3.6 HITL Approval βββΆ T3.7 npm publishβ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Task Listβ
Phase 1: PLANβ
T1.1: Create spec.mdβ
| Field | Value |
|---|---|
| ID | T1.1 |
| Status | β COMPLETE |
| Priority | P0 |
| Effort | 30min |
| Dependencies | None |
| Output | specs/aws-sandbox/spec.md |
Acceptance Criteria:
- Business requirements documented
- INVEST user stories defined
- Acceptance criteria specified
- Risk assessment included
T1.2: Create plan.mdβ
| Field | Value |
|---|---|
| ID | T1.2 |
| Status | β COMPLETE |
| Priority | P0 |
| Effort | 30min |
| Dependencies | T1.1 |
| Output | specs/aws-sandbox/plan.md |
Acceptance Criteria:
- Technical design documented
- Implementation phases defined
- Testing strategy specified
- Risk mitigation planned
T1.3: Create tasks.mdβ
| Field | Value |
|---|---|
| ID | T1.3 |
| Status | β COMPLETE |
| Priority | P0 |
| Effort | 30min |
| Dependencies | T1.2 |
| Output | specs/aws-sandbox/tasks.md |
Acceptance Criteria:
- Task dependency graph created
- Effort estimates provided
- Acceptance criteria defined
- Status tracking enabled
T1.4: Obtain HITL Approvalβ
| Field | Value |
|---|---|
| ID | T1.4 |
| Status | β³ PENDING |
| Priority | P0 (BLOCKING) |
| Effort | 15min |
| Dependencies | T1.1, T1.2, T1.3 |
| Output | tmp/cdk/approvals/hitl-approval-2026-02-02.md |
Acceptance Criteria:
- Manager reviews spec.md
- Manager reviews plan.md
- Manager reviews tasks.md
- Manager signs approval template
Action Required:
# Manager creates approval file:
cat > tmp/cdk/approvals/hitl-approval-2026-02-02.md << 'EOF'
# HITL Approval - aws-sandbox v0.3.18
**Date**: 2026-02-02
**Manager**: @nnthanh101
**Decision**: APPROVED
## Reviewed Artifacts
- [x] specs/aws-sandbox/spec.md
- [x] specs/aws-sandbox/plan.md
- [x] specs/aws-sandbox/tasks.md
## Approval
I approve Phase 1 deliverables for aws-sandbox v0.3.18 release.
**Signature**: ____________________
**Date**: 2026-02-02
EOF
Phase 2: BUILDβ
T2.1: Build TypeScriptβ
| Field | Value |
|---|---|
| ID | T2.1 |
| Status | β³ PENDING |
| Priority | P0 |
| Effort | 5min |
| Dependencies | T1.4 |
| Output | lib/*.js, source/lambdas-bundled/ |
Command:
cd /Volumes/Working/projects/sandbox/cdk
npm run build
Acceptance Criteria:
- TypeScript compiles without errors
- lib/ directory populated
- Lambda bundles created
T2.2: Build Consumer App (app.cjs)β
| Field | Value |
|---|---|
| ID | T2.2 |
| Status | β³ PENDING |
| Priority | P0 (CRITICAL) |
| Effort | 15min |
| Dependencies | T2.1 |
| Output | source/infrastructure/dist/infrastructure/bin/app.cjs |
Command:
cd /Volumes/Working/projects/sandbox/cdk
npm run build:consumer-app
Acceptance Criteria:
- app.cjs generated
- File size ~58MB (bundled ESM to CJS)
- No build errors
T2.3: Verify Build Outputsβ
| Field | Value |
|---|---|
| ID | T2.3 |
| Status | β³ PENDING |
| Priority | P0 |
| Effort | 5min |
| Dependencies | T2.2 |
| Output | Build verification log |
Commands:
# Verify app.cjs exists and has expected size
ls -la source/infrastructure/dist/infrastructure/bin/app.cjs
# Verify package contents
npm pack --dry-run | head -50
# Expected files in package:
# bin/cli.js
# lib/index.js
# source/infrastructure/dist/infrastructure/bin/app.cjs
Acceptance Criteria:
- app.cjs exists
- app.cjs > 50MB
- npm pack --dry-run shows all required files
Phase 3: TESTβ
T3.1: Run Tier 1 Snapshot Testsβ
| Field | Value |
|---|---|
| ID | T3.1 |
| Status | β COMPLETE |
| Priority | P0 |
| Effort | 1min |
| Dependencies | T2.3 |
| Output | tmp/cdk/test-results/tier1-*.log |
Evidence: tmp/cdk/test-results/tier1-2026-02-01-081221.log
- 29/29 PASS (5.38s)
T3.2: Run Tier 2 LocalStack Testsβ
| Field | Value |
|---|---|
| ID | T3.2 |
| Status | β COMPLETE |
| Priority | P0 |
| Effort | 2min |
| Dependencies | T3.1 |
| Output | tmp/cdk/test-results/tier2-*.log |
Evidence: tmp/cdk/test-results/tier2-2026-02-01-081151.log
- 11/11 PASS (1.28s), 25 skipped per ADR-003
T3.3: Execute Phase 3.5 Consumer E2E Deployβ
| Field | Value |
|---|---|
| ID | T3.3 |
| Status | β³ PENDING (CRITICAL BLOCKER) |
| Priority | P0 (BLOCKING) |
| Effort | 1-2h |
| Dependencies | T2.3, T3.1, T3.2 |
| Output | tmp/cdk/release-logs/phase3.5-consumer-*.log |
Layer 1: Package Installation
cd /Volumes/Working/projects/sandbox/cdk
npm pack
mkdir -p tmp/cdk/consumer-test
cd tmp/cdk/consumer-test
npm init -y
npm install ../../../aws-sandbox-0.3.18.tgz
Layer 2: CLI Availability
npx aws-sandbox --version
# Expected: 0.3.18
Layer 3: Consumer Mode Detection
npx aws-sandbox synth --all 2>&1 | head -20
# Should show consumer mode active
Layer 4: LocalStack Deployment
# Ensure LocalStack running
docker compose -f ../../../docker-compose.yml up -d localstack
sleep 10
# Deploy
AWS_ENDPOINT_URL=http://localhost:4566 npx aws-sandbox deploy --localstack --require-approval never
Layer 5: Validate Stacks
aws --endpoint-url=http://localhost:4566 cloudformation list-stacks --stack-status-filter CREATE_COMPLETE
Acceptance Criteria:
- Layer 1: Package installs without errors
- Layer 2: CLI returns version 0.3.18
- Layer 3: Consumer mode detected
- Layer 4: Deploy completes without errors
- Layer 5: Stacks show CREATE_COMPLETE
T3.4: Capture Phase 3.5 Evidenceβ
| Field | Value |
|---|---|
| ID | T3.4 |
| Status | β³ PENDING |
| Priority | P0 |
| Effort | 10min |
| Dependencies | T3.3 |
| Output | tmp/cdk/release-logs/phase3.5-consumer-*.log |
Command:
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
mkdir -p /Volumes/Working/projects/sandbox/tmp/cdk/release-logs
# Capture all Phase 3.5 output to evidence file
# tmp/cdk/release-logs/phase3.5-consumer-${TIMESTAMP}.log
Acceptance Criteria:
- Evidence file created
- All 5 layers documented
- PASS/FAIL status clear
- 0 errors in evidence
Phase 3.6: RELEASEβ
T3.5: Version Verificationβ
| Field | Value |
|---|---|
| ID | T3.5 |
| Status | β³ PENDING |
| Priority | P0 |
| Effort | 5min |
| Dependencies | T3.4 |
| Output | Version confirmation |
Commands:
cd /Volumes/Working/projects/sandbox/cdk
cat package.json | jq '.version'
# Expected: "0.3.18"
# Check npm registry for existing versions
npm view aws-sandbox versions --json | tail -5
Acceptance Criteria:
- package.json version is 0.3.18
- Version not already published
T3.6: Obtain npm Publish HITL Approvalβ
| Field | Value |
|---|---|
| ID | T3.6 |
| Status | β³ PENDING |
| Priority | P0 (BLOCKING) |
| Effort | 15min |
| Dependencies | T3.5 |
| Output | tmp/cdk/approvals/npm-publish-approval-2026-02-02.md |
Action Required:
# Manager reviews Phase 3.5 evidence
cat tmp/cdk/release-logs/phase3.5-consumer-*.log
# Manager creates publish approval
cat > tmp/cdk/approvals/npm-publish-approval-2026-02-02.md << 'EOF'
# npm Publish Approval - aws-sandbox v0.3.18
**Date**: 2026-02-02
**Manager**: @nnthanh101
**Decision**: APPROVED
## Reviewed Evidence
- [x] Phase 3.5 Consumer E2E: PASS
- [x] Version: 0.3.18
- [x] 0 deploy errors
## Approval
I approve npm publish for aws-sandbox v0.3.18.
**Signature**: ____________________
**Date**: 2026-02-02
EOF
T3.7: Execute npm Publishβ
| Field | Value |
|---|---|
| ID | T3.7 |
| Status | β³ PENDING |
| Priority | P0 |
| Effort | 5min |
| Dependencies | T3.6 |
| Output | npm registry entry |
Commands:
cd /Volumes/Working/projects/sandbox/cdk
# Verify logged into npm
npm whoami
# Publish
npm publish --access public
# Verify published
npm view [email protected]
Acceptance Criteria:
- npm publish succeeds
- Package visible on npmjs.com
- Version 0.3.18 available
Summary Statusβ
| Phase | Tasks | Complete | Pending | Blocked |
|---|---|---|---|---|
| Phase 1 | 4 | 3 | 1 | - |
| Phase 2 | 3 | 0 | 3 | - |
| Phase 3 | 4 | 2 | 2 | T3.3 |
| Phase 3.6 | 3 | 0 | 3 | T3.6, T3.7 |
| Total | 14 | 5 | 9 | 3 |
Critical Pathβ
T1.4 (HITL) β T2.2 (app.cjs) β T3.3 (Phase 3.5) β T3.6 (HITL) β T3.7 (publish)
Estimated Total Time: 3-4 hours (including HITL wait times)
T3.3 Phase 3.5 Flow of Events (RQ5 Story-Telling)β
Story: Consumer installs [email protected] and deploys to LocalStackβ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β INPUTS β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β’ aws-sandbox-0.3.18.tgz (npm tarball, 28.7MB) β
β β’ LocalStack running on :4566 (container: localstack) β
β β’ Fresh consumer environment (no source code, npm-only) β
β β’ Docker available (for LocalStack) β
β β’ ADLC Container running (adlc-cdk) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β LAYER 1: Package Installation β
β Agent: infrastructure-engineer | Command: npm pack + npm install β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β 1. npm pack β aws-sandbox-0.3.18.tgz β
β 2. mkdir /tmp/consumer-test && cd /tmp/consumer-test β
β 3. npm init -y β
β 4. npm install /workspace/cdk/aws-sandbox-0.3.18.tgz β
β β
β EXPECTED: "added 4 packages, and audited 5 packages" β
β WHAT-IF FAILS: Missing files in package.json β REJECT β
β EVIDENCE: Installation log in release-logs/ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β LAYER 2: CLI Availability β
β Agent: qa-engineer | Command: npx aws-sandbox --version β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β 1. npx aws-sandbox --version β
β β
β EXPECTED: "aws-sandbox v0.3.18" β
β WHAT-IF FAILS: bin/cli.js missing or broken shebang β REJECT β
β EVIDENCE: Version string captured β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β LAYER 3: Consumer Mode Detection β
β Agent: qa-engineer | Command: npx aws-sandbox synth --all β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β 1. npx aws-sandbox synth --all (or with --app flag to app.cjs) β
β 2. Verify consumer mode uses app.cjs, not app.ts β
β β
β EXPECTED: "Successfully synthesized to cdk.out" β
β WHAT-IF FAILS: app.cjs missing β v0.3.8 incident repeat β REJECT β
β EVIDENCE: CloudFormation templates in cdk.out/ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β LAYER 4: LocalStack Deployment β
β Agent: infrastructure-engineer | MCP: localstack β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β 1. AWS_ENDPOINT_URL=http://localstack:4566 β
β 2. npx cdk deploy --all --require-approval never β
β OR: cdklocal deploy --all β
β β
β EXPECTED: All stacks CREATE_COMPLETE β
β WHAT-IF FAILS: Lambda bundles missing β v0.3.9 incident repeat β REJECT β
β EVIDENCE: CloudFormation stack status β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β LAYER 5: Stack Validation & Evidence Capture β
β Agent: qa-engineer | Hook: detect-nato-violation.sh β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β 1. aws --endpoint-url=http://localstack:4566 cloudformation list-stacks β
β 2. Verify: InnovationSandbox-Data = CREATE_COMPLETE β
β 3. Verify: InnovationSandbox-Compute = CREATE_COMPLETE β
β 4. TIMESTAMP=$(date +%Y%m%d-%H%M%S) β
β 5. Save to: tmp/cdk/release-logs/phase3.5-consumer-${TIMESTAMP}.log β
β β
β EXPECTED: 2 stacks CREATE_COMPLETE, 0 errors β
β WHAT-IF FAILS: Any stack FAILED β NO_GO for npm publish β
β EVIDENCE: phase3.5-consumer-*.log with all 5 layers documented β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β OUTPUTS β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β’ tmp/cdk/release-logs/phase3.5-consumer-YYYYMMDD-HHMMSS.log β
β β’ Stacks: InnovationSandbox-Data, InnovationSandbox-Compute β
β β’ Tables: LeaseTable, SandboxAccountTable (DynamoDB) β
β β’ DECISION: GO/NO_GO for npm publish β
β β’ ROI: 15 min investment β 32.5+ hours saved (130x) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Success Metrics (Phase 3.5)β
| Metric | v0.3.x (WITHOUT Phase 3.5) | v0.3.18 (WITH Phase 3.5) | Improvement |
|---|---|---|---|
| Broken versions published | 7 (87.5%) | 0 (0%) | -87.5% |
| Consumer install success | 12.5% | 100% | +87.5% |
| Support tickets | ~50 | 0 | -100% |
| npm unpublish required | 7 versions | 0 | PREVENTED |
| ROI | - | 130x | 15 min β 32.5+ hours saved |
Tasks Version: 1.1.0 ADLC Phase: 1.6 (Task Breakdown & Estimation) Updated: 2026-02-02 (RQ5 Upgrade: Component Matrix + Flow of Events) Next Action: Execute T3.3 (Phase 3.5 Consumer E2E Deploy)