feat(F-001): scaffold modular monolith skeleton with boundary checker

- TypeScript + Fastify skeleton under project/ (src/modules, shared, infrastructure, app)
- scripts/check-module-boundaries.mjs enforcing module public-API rules (tested with fixtures)
- GET /health endpoint, error envelope without stack leakage
- specs/F-001-scaffold (SPEC/DESIGN/TASKS/TESTS), spec/tech.md dependency justification
- 30-ticket MercadoDeVida roadmap in backlog/features.json, spec/roadmap.md
- All gates approved: reviewer, security, qa; verify.sh green
This commit is contained in:
rikrdo
2026-08-14 21:46:54 +02:00
commit 1d4eebca54
76 changed files with 9430 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
{
"feature_id": "F-001",
"agent": "qa",
"verdict": "APPROVED",
"summary": "All 5 acceptance criteria verified with fresh executions against the final tree. No regressions (greenfield baseline).",
"traceability": [
{
"criterion": "AC1: npm install, build, lint, typecheck, test all green in project/",
"test": "fresh run of npm run build && typecheck && lint && lint:boundaries && test",
"result": "PASS (all exit 0; 3 test files / 7 tests passed)"
},
{
"criterion": "AC2: GET /health returns 200 {\"status\":\"ok\"}",
"test": "vitest inject tests (health.test.ts, build-app.test.ts) + live smoke: PORT=3998 node dist/infrastructure/http/server.js; curl /health",
"result": "PASS (HTTP 200 {\"status\":\"ok\"} live)"
},
{
"criterion": "AC3: src/modules, src/shared, src/infrastructure, src/app exist",
"test": "ls -d over project/src",
"result": "PASS (all four directories present)"
},
{
"criterion": "AC4: cross-module internal import fails boundary check",
"test": "node scripts/check-module-boundaries.mjs scripts/tests/fixtures/cross-module-internal + boundary-checker.test.ts fixtures",
"result": "PASS (exit 1, R1 violation reported)"
},
{
"criterion": "AC5: ./scripts/verify.sh green at repo root",
"test": "./scripts/verify.sh",
"result": "PASS (exit 0, 'Orquestra verificado')"
}
],
"regressions": "n/a - greenfield ticket, no prior behavior to regress",
"evidence": [
"project/: npm run build/typecheck/lint/lint:boundaries/test -> all exit 0",
"npm test -> Test Files 3 passed (3), Tests 7 passed (7)",
"live smoke on PORT=3998 -> 200 {\"status\":\"ok\"}",
"boundary checker on violation fixture -> exit 1 with R1 violation message",
"./scripts/verify.sh -> exit 0"
],
"timestamp": "2026-08-14T19:50:00Z"
}