phase 16 implementation
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
Phase 14 command summary
|
||||
Date: 2026-06-25
|
||||
Observed runtime: Node 22.16.0
|
||||
Authoritative runtime still required: Node 24.17.0 / pnpm 11.9.0
|
||||
|
||||
1. npm install --offline --engine-strict=false --ignore-scripts --no-audit --no-fund
|
||||
Exit: 0. Fallback execution only; does not replace frozen pnpm release gate.
|
||||
2. npm run validate
|
||||
Exit: 0. Phase 9-14 static validators passed.
|
||||
3. npm run format:check
|
||||
Exit: 0.
|
||||
4. npm run lint
|
||||
Exit: 0, zero warnings.
|
||||
5. npm run typecheck
|
||||
Exit: 0 after deterministic Next route-type generation and stale development-type cleanup.
|
||||
6. npm run test:unit
|
||||
Exit: 0. 13 files, 39 tests. Coverage: statements 92.4%, branches 86.04%, functions 95.45%, lines 92.64%.
|
||||
7. npm run test:integration
|
||||
Exit: 0. 1 file, 4 tests.
|
||||
8. npm run test:security
|
||||
Exit: 0.
|
||||
9. npm run test:privacy
|
||||
Exit: 0.
|
||||
10. SITE_ORIGIN=http://127.0.0.1:3000 PUBLIC_RELEASE_APPROVED=false npm run build
|
||||
Exit: 0. Optimized build and standalone preparation completed in 29 seconds.
|
||||
11. Standalone HTTP smoke
|
||||
GET /en: 200. GET /api/demo: 405. Valid production POST /api/demo: 503 lead_destination_not_approved.
|
||||
12. npm audit --offline --audit-level=low
|
||||
Exit: 0. Zero reported vulnerabilities in the available npm lock/cache.
|
||||
13. High-confidence source secret-pattern scan
|
||||
Exit: 0. No matches.
|
||||
14. Playwright Chromium Phase 14 browser workflow
|
||||
Exit: 1, environment-blocked. Five scenarios rejected before application response by net::ERR_BLOCKED_BY_ADMINISTRATOR.
|
||||
15. Playwright Chromium Phase 14 axe workflow
|
||||
Exit: 1, environment-blocked. Three scenarios rejected by the same policy.
|
||||
16. Playwright Chromium Phase 14 visual workflow
|
||||
Exit: 1, environment-blocked. Five scenarios rejected by the same policy; no baseline approved.
|
||||
17. npm run manifest:generate
|
||||
Exit: 0. Final manifest generated for the assembled repository.
|
||||
18. npm run validate:package
|
||||
Exit: 0. Manifest verified with no missing, changed, unsafe, duplicate, or extra files.
|
||||
|
||||
Detailed stdout, exit codes, and durations are under docs/quality/logs/phase14/.
|
||||
@@ -0,0 +1,137 @@
|
||||
Phase 14 file changes relative to the delivered Phase 13 repository
|
||||
Generated: 2026-06-25
|
||||
|
||||
ADDED (107)
|
||||
docs/DECISION_LOG_v14.0.md
|
||||
docs/IMPLEMENTATION_ISSUE_REGISTER_v1.4.csv
|
||||
docs/PHASE_14_IMPLEMENTATION_REPORT_v1.0.md
|
||||
docs/PHASE_15_HANDOFF_v1.0.md
|
||||
docs/phase14/ANALYTICS_EVENT_REGISTRY_v1.0.csv
|
||||
docs/phase14/COMPONENT_VARIANT_UPDATE_v1.0.md
|
||||
docs/phase14/CONSENT_MATRIX_v1.0.csv
|
||||
docs/phase14/DATA_FLOW_INVENTORY_v1.0.csv
|
||||
docs/phase14/DEMO_FORM_CONTRACT_v1.0.md
|
||||
docs/phase14/DESTINATION_REGISTRY_v1.0.csv
|
||||
docs/phase14/ENVIRONMENT_VARIABLE_INVENTORY_v1.0.csv
|
||||
docs/phase14/EXTERNAL_SERVICE_INVENTORY_v1.0.csv
|
||||
docs/phase14/FEATURE_FLAG_INVENTORY_v1.0.csv
|
||||
docs/phase14/INTEGRATION_ARCHITECTURE_v1.0.md
|
||||
docs/phase14/INTEGRATION_TRACEABILITY_MATRIX_v1.0.csv
|
||||
docs/phase14/PERFORMANCE_AND_BUNDLE_REPORT_v1.0.md
|
||||
docs/phase14/PRIVACY_REVIEW_REPORT_v1.0.md
|
||||
docs/phase14/RELEASE_GATE_MATRIX_v1.0.csv
|
||||
docs/phase14/SECURITY_REVIEW_REPORT_v1.0.md
|
||||
docs/phase14/SUCCESS_FAILURE_STATE_INVENTORY_v1.0.csv
|
||||
docs/quality/PHASE_14_COMMAND_LOG_v1.0.txt
|
||||
docs/quality/PHASE_14_FILE_CHANGES_v1.0.txt
|
||||
docs/quality/PHASE_14_HTTP_ROUTE_RESULTS_v1.0.json
|
||||
docs/quality/PHASE_14_MANUAL_QA_RESULTS_v1.0.csv
|
||||
docs/quality/PHASE_14_VALIDATION_RESULTS_v1.0.json
|
||||
docs/quality/PHASE_14_VALIDATION_RESULTS_v1.0.md
|
||||
docs/quality/PHASE_14_VISUAL_REGRESSION_RESULTS_v1.0.json
|
||||
docs/quality/logs/phase14/a11y-integration-chromium.log
|
||||
docs/quality/logs/phase14/browser-integration-chromium.log
|
||||
docs/quality/logs/phase14/bundle-inventory.log
|
||||
docs/quality/logs/phase14/dependency-audit.log
|
||||
docs/quality/logs/phase14/format-check-initial.duration
|
||||
docs/quality/logs/phase14/format-check-initial.exit
|
||||
docs/quality/logs/phase14/format-check-initial.log
|
||||
docs/quality/logs/phase14/format-check.duration
|
||||
docs/quality/logs/phase14/format-check.exit
|
||||
docs/quality/logs/phase14/format-check.log
|
||||
docs/quality/logs/phase14/format-write.exit
|
||||
docs/quality/logs/phase14/format-write.log
|
||||
docs/quality/logs/phase14/integration-tests.log
|
||||
docs/quality/logs/phase14/lint-initial.duration
|
||||
docs/quality/logs/phase14/lint-initial.exit
|
||||
docs/quality/logs/phase14/lint-initial.log
|
||||
docs/quality/logs/phase14/lint.duration
|
||||
docs/quality/logs/phase14/lint.exit
|
||||
docs/quality/logs/phase14/lint.log
|
||||
docs/quality/logs/phase14/next-typegen.exit
|
||||
docs/quality/logs/phase14/next-typegen.log
|
||||
docs/quality/logs/phase14/npm-install-baseline.exit
|
||||
docs/quality/logs/phase14/npm-install-baseline.log
|
||||
docs/quality/logs/phase14/npm-install-fallback.log
|
||||
docs/quality/logs/phase14/npm-install-offline.duration
|
||||
docs/quality/logs/phase14/npm-install-offline.exit
|
||||
docs/quality/logs/phase14/npm-install-offline.log
|
||||
docs/quality/logs/phase14/phase14-environment.log
|
||||
docs/quality/logs/phase14/phase14-integrations.log
|
||||
docs/quality/logs/phase14/phase14-privacy.log
|
||||
docs/quality/logs/phase14/phase14-security.log
|
||||
docs/quality/logs/phase14/playwright-inventory.log
|
||||
docs/quality/logs/phase14/production-build.log
|
||||
docs/quality/logs/phase14/secret-scan.log
|
||||
docs/quality/logs/phase14/static-validations.duration
|
||||
docs/quality/logs/phase14/static-validations.exit
|
||||
docs/quality/logs/phase14/static-validations.log
|
||||
docs/quality/logs/phase14/typecheck-initial.duration
|
||||
docs/quality/logs/phase14/typecheck-initial.exit
|
||||
docs/quality/logs/phase14/typecheck-initial.log
|
||||
docs/quality/logs/phase14/typecheck.duration
|
||||
docs/quality/logs/phase14/typecheck.exit
|
||||
docs/quality/logs/phase14/typecheck.log
|
||||
docs/quality/logs/phase14/unit-initial.log
|
||||
docs/quality/logs/phase14/unit-tests-coverage.log
|
||||
docs/quality/logs/phase14/unit.log
|
||||
docs/quality/logs/phase14/visual-integration-chromium.log
|
||||
scripts/generate-phase14-manifest.mjs
|
||||
scripts/prepare-typecheck.mjs
|
||||
scripts/validate-phase14-environment.mjs
|
||||
scripts/validate-phase14-integrations.mjs
|
||||
scripts/validate-phase14-manifest.mjs
|
||||
scripts/validate-phase14-privacy.mjs
|
||||
scripts/validate-phase14-security.mjs
|
||||
src/app/api/demo/route.ts
|
||||
src/components/integrations/DemoDialogHost.module.css
|
||||
src/components/integrations/DemoDialogHost.tsx
|
||||
src/components/integrations/DemoTrigger.tsx
|
||||
src/lib/analytics/client.ts
|
||||
src/lib/analytics/events.ts
|
||||
src/lib/demo/adapters/blocked.ts
|
||||
src/lib/demo/adapters/index.ts
|
||||
src/lib/demo/adapters/local.ts
|
||||
src/lib/demo/adapters/types.ts
|
||||
src/lib/demo/idempotency.ts
|
||||
src/lib/demo/redaction.ts
|
||||
src/lib/demo/schema.ts
|
||||
src/lib/demo/service.ts
|
||||
src/lib/integrations/destinations.ts
|
||||
src/lib/integrations/environment.ts
|
||||
src/lib/integrations/feature-flags.ts
|
||||
tests/a11y/integrations/demo-workflow.a11y.spec.ts
|
||||
tests/browser/integrations/demo-workflow.spec.ts
|
||||
tests/integration/demo-service.test.ts
|
||||
tests/unit/integrations/analytics.test.ts
|
||||
tests/unit/integrations/demo-schema.test.ts
|
||||
tests/unit/integrations/destinations.test.ts
|
||||
tests/unit/integrations/redaction.test.ts
|
||||
tests/visual/integrations.visual.spec.ts
|
||||
vitest.integration.config.ts
|
||||
|
||||
CHANGED (21)
|
||||
.env.example
|
||||
CONTRIBUTING.md
|
||||
README.md
|
||||
package.json
|
||||
playwright.config.ts
|
||||
scripts/run-checks.mjs
|
||||
scripts/run-validations.mjs
|
||||
src/app/[locale]/layout.tsx
|
||||
src/app/[locale]/page.tsx
|
||||
src/components/app-shell/MobileNavigation.tsx
|
||||
src/components/app-shell/SiteFooter.tsx
|
||||
src/components/app-shell/SiteHeader.module.css
|
||||
src/components/app-shell/SiteHeader.tsx
|
||||
src/components/forms/FormField.tsx
|
||||
src/components/forms/TextInput.tsx
|
||||
src/components/marketing/CTA.tsx
|
||||
src/content/locales/ar/homepage.json
|
||||
src/content/locales/en/homepage.json
|
||||
src/content/locales/fr/homepage.json
|
||||
tests/browser/homepage.spec.ts
|
||||
tsconfig.json
|
||||
|
||||
DELETED (0)
|
||||
(none)
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"date": "2026-06-25",
|
||||
"environment": {
|
||||
"node": "22.16.0",
|
||||
"package_execution": "npm fallback",
|
||||
"server": "Next.js standalone production server",
|
||||
"origin": "http://127.0.0.1:3000"
|
||||
},
|
||||
"checks": [
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/en",
|
||||
"status": 200,
|
||||
"result": "pass",
|
||||
"evidence": "Localized title and security headers returned"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/api/demo",
|
||||
"status": 405,
|
||||
"result": "pass",
|
||||
"evidence": "Unsupported method rejected"
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/api/demo",
|
||||
"status": 503,
|
||||
"result": "pass",
|
||||
"evidence": "Structurally valid fictional request failed closed with lead_destination_not_approved"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
id,area,environment,locale,theme,viewport,input_or_assistive_technology,expected,status,evidence,issue
|
||||
P14-M01,Hero demo CTA,Unblocked pinned browser,en,light,1440x900,Keyboard,Dialog opens and focus enters title or first field,Not run,Requires human browser observation,P14-008
|
||||
P14-M02,Header and final CTA,Unblocked pinned browser,fr,dark,1024x768,Keyboard and pointer,All sources open the same localized workflow,Not run,Requires human browser observation,P14-008
|
||||
P14-M03,Arabic form order,Unblocked pinned browser,ar,light,390x844,Screen reader and touch,Logical RTL order and mixed-direction values remain readable,Not run,Requires Arabic AT observation,P14-008
|
||||
P14-M04,Validation summary,Unblocked pinned browser,en,system,768x1024,Keyboard and screen reader,Summary is announced and errors are connected to controls,Not run,Requires human AT observation,P14-008
|
||||
P14-M05,Zoom and reflow,Unblocked pinned browser,fr,light,320 CSS px equivalent,200 and 400 percent zoom,No page horizontal overflow and actions remain operable,Not run,Requires manual zoom review,P14-008
|
||||
P14-M06,Forced colors and reduced motion,Unblocked pinned browser,en,dark,1440x900,Windows forced colors and reduced motion,Focus and statuses remain perceivable,Not run,Requires platform review,P14-008
|
||||
P14-M07,Timeout and retry,Production-like test adapter,en,light,390x844,Slow network simulation,Retryable failure preserves input and retry is bounded,Not run,Requires browser network control,P14-008
|
||||
P14-M08,Offline transition,Production-like test adapter,ar,dark,390x844,Offline simulation,Failure is localized and no false success appears,Not run,Requires browser network control,P14-008
|
||||
P14-M09,Success refresh and back,Production-like test adapter,en,light,1440x900,Browser history,No accidental duplicate request or personal data in URL,Not run,Requires browser history observation,P14-008
|
||||
P14-M10,Production blocked state,Standalone server,en,light,n/a,Command-line HTTP,Valid request is rejected until destination approval,Pass,HTTP 503 with lead_destination_not_approved in production smoke test,none
|
||||
|
@@ -0,0 +1,139 @@
|
||||
{
|
||||
"date": "2026-06-25",
|
||||
"runtime": {
|
||||
"observed_node": "22.16.0",
|
||||
"required_node": "24.17.0",
|
||||
"observed_package_path": "npm offline fallback",
|
||||
"required_package_manager": "pnpm 11.9.0"
|
||||
},
|
||||
"results": [
|
||||
{
|
||||
"name": "Phase 9-14 static validation",
|
||||
"status": "pass",
|
||||
"evidence": "docs/quality/logs/phase14/static-validations.log"
|
||||
},
|
||||
{
|
||||
"name": "Formatting",
|
||||
"status": "pass",
|
||||
"exit_code": 0,
|
||||
"evidence": "docs/quality/logs/phase14/format-check.log"
|
||||
},
|
||||
{
|
||||
"name": "Lint",
|
||||
"status": "pass",
|
||||
"exit_code": 0,
|
||||
"evidence": "docs/quality/logs/phase14/lint.log"
|
||||
},
|
||||
{
|
||||
"name": "Strict TypeScript",
|
||||
"status": "pass",
|
||||
"exit_code": 0,
|
||||
"evidence": "docs/quality/logs/phase14/typecheck.log"
|
||||
},
|
||||
{
|
||||
"name": "Unit tests",
|
||||
"status": "pass",
|
||||
"files": 13,
|
||||
"passed": 39,
|
||||
"failed": 0,
|
||||
"coverage": {
|
||||
"statements": 92.4,
|
||||
"branches": 86.04,
|
||||
"functions": 95.45,
|
||||
"lines": 92.64
|
||||
},
|
||||
"evidence": "docs/quality/logs/phase14/unit-tests-coverage.log"
|
||||
},
|
||||
{
|
||||
"name": "Integration tests",
|
||||
"status": "pass",
|
||||
"files": 1,
|
||||
"passed": 4,
|
||||
"failed": 0,
|
||||
"evidence": "docs/quality/logs/phase14/integration-tests.log"
|
||||
},
|
||||
{
|
||||
"name": "Security static tests",
|
||||
"status": "pass",
|
||||
"evidence": "docs/quality/logs/phase14/phase14-security.log"
|
||||
},
|
||||
{
|
||||
"name": "Privacy static tests",
|
||||
"status": "pass",
|
||||
"evidence": "docs/quality/logs/phase14/phase14-privacy.log"
|
||||
},
|
||||
{
|
||||
"name": "Environment validation",
|
||||
"status": "pass",
|
||||
"evidence": "docs/quality/logs/phase14/phase14-environment.log"
|
||||
},
|
||||
{
|
||||
"name": "Integration structure validation",
|
||||
"status": "pass",
|
||||
"evidence": "docs/quality/logs/phase14/phase14-integrations.log"
|
||||
},
|
||||
{
|
||||
"name": "Production build",
|
||||
"status": "pass",
|
||||
"exit_code": 0,
|
||||
"duration_seconds": 29,
|
||||
"evidence": "docs/quality/logs/phase14/production-build.log"
|
||||
},
|
||||
{
|
||||
"name": "Standalone HTTP smoke",
|
||||
"status": "pass",
|
||||
"evidence": "docs/quality/PHASE_14_HTTP_ROUTE_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"name": "Dependency audit",
|
||||
"status": "pass",
|
||||
"vulnerabilities": 0,
|
||||
"note": "npm offline fallback; frozen pnpm audit still required",
|
||||
"evidence": "docs/quality/logs/phase14/dependency-audit.log"
|
||||
},
|
||||
{
|
||||
"name": "Secret scan",
|
||||
"status": "pass",
|
||||
"evidence": "docs/quality/logs/phase14/secret-scan.log"
|
||||
},
|
||||
{
|
||||
"name": "Browser integration",
|
||||
"status": "environment-blocked",
|
||||
"attempted": 5,
|
||||
"passed": 0,
|
||||
"reason": "net::ERR_BLOCKED_BY_ADMINISTRATOR",
|
||||
"evidence": "docs/quality/logs/phase14/browser-integration-chromium.log"
|
||||
},
|
||||
{
|
||||
"name": "Accessibility browser",
|
||||
"status": "environment-blocked",
|
||||
"attempted": 3,
|
||||
"passed": 0,
|
||||
"reason": "net::ERR_BLOCKED_BY_ADMINISTRATOR",
|
||||
"evidence": "docs/quality/logs/phase14/a11y-integration-chromium.log"
|
||||
},
|
||||
{
|
||||
"name": "Visual regression",
|
||||
"status": "environment-blocked",
|
||||
"attempted": 5,
|
||||
"passed": 0,
|
||||
"reason": "net::ERR_BLOCKED_BY_ADMINISTRATOR",
|
||||
"evidence": "docs/quality/logs/phase14/visual-integration-chromium.log"
|
||||
},
|
||||
{
|
||||
"name": "Manual QA",
|
||||
"status": "not-run",
|
||||
"evidence": "docs/quality/PHASE_14_MANUAL_QA_RESULTS_v1.0.csv"
|
||||
},
|
||||
{
|
||||
"name": "Pinned runtime and frozen install",
|
||||
"status": "environment-blocked",
|
||||
"issue": "P14-009"
|
||||
},
|
||||
{
|
||||
"name": "Package manifest",
|
||||
"status": "pass",
|
||||
"evidence": "PHASE_14_PACKAGE_MANIFEST_v1.0.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
# Phase 14 Validation Results
|
||||
|
||||
Date: 2026-06-25
|
||||
|
||||
## Passed in the available environment
|
||||
|
||||
- Phase 9 through Phase 14 static validators.
|
||||
- Prettier and ESLint with zero warnings.
|
||||
- Strict TypeScript after deterministic Next route-type generation.
|
||||
- 39 unit tests across 13 files with 92.4% statement, 86.04% branch, 95.45% function, and 92.64% line coverage.
|
||||
- Four integration tests covering success, normalized failure, timeout, and idempotency coalescing.
|
||||
- Phase 14 security, privacy, environment, destination, form, and analytics validators.
|
||||
- Optimized Next.js production build and standalone preparation.
|
||||
- Direct HTTP 200 for `/en`, 405 for unsupported API GET, and fail-closed 503 for a valid production demo POST without an approved destination.
|
||||
- Offline npm dependency audit with zero reported vulnerabilities.
|
||||
- High-confidence source secret-pattern scan.
|
||||
- Phase 14 package manifest generation and verification.
|
||||
|
||||
## Environment-blocked or not run
|
||||
|
||||
- Browser workflow: five scenarios attempted, all blocked before application response by system Chromium `net::ERR_BLOCKED_BY_ADMINISTRATOR`.
|
||||
- Axe accessibility: three locale scenarios attempted, same browser policy block.
|
||||
- Visual regression: five scenarios attempted, same browser policy block; no product baseline accepted.
|
||||
- Manual keyboard, touch, screen-reader, zoom, reduced-motion, forced-colors, theme, locale, viewport, slow-network, offline, and history review.
|
||||
- Exact Node 24.17.0 and pnpm 11.9.0 frozen installation and audit.
|
||||
|
||||
These constraints remain release gates. An authored test is not an observed pass merely because the code looks emotionally prepared for success.
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"date": "2026-06-25",
|
||||
"status": "environment-blocked",
|
||||
"browser": "system Chromium",
|
||||
"reason": "net::ERR_BLOCKED_BY_ADMINISTRATOR on loopback navigation before application response",
|
||||
"authored_scenarios": 5,
|
||||
"executed_scenarios": 5,
|
||||
"product_baselines_approved": 0,
|
||||
"notes": "Failure screenshots represent the administrative block page and must not be accepted as product baselines.",
|
||||
"evidence": "docs/quality/logs/phase14/visual-integration-chromium.log",
|
||||
"issue": "P14-008"
|
||||
}
|
||||
@@ -0,0 +1,199 @@
|
||||
{
|
||||
"audit": "Phase 15 dependency-free static repository audit",
|
||||
"finding_counts": {
|
||||
"High": 4,
|
||||
"Medium": 7
|
||||
},
|
||||
"findings": [
|
||||
{
|
||||
"code": "ci_integration_suite_omitted",
|
||||
"message": "CI does not execute the demo-service integration suite.",
|
||||
"path": ".github/workflows/ci.yml",
|
||||
"severity": "High"
|
||||
},
|
||||
{
|
||||
"code": "issue_register_overflow",
|
||||
"message": "One or more issue-register rows contain overflow columns.",
|
||||
"path": "docs/IMPLEMENTATION_ISSUE_REGISTER_v1.4.csv",
|
||||
"severity": "High"
|
||||
},
|
||||
{
|
||||
"code": "malformed_csv",
|
||||
"line": 43,
|
||||
"message": "Expected 9 columns, found 11.",
|
||||
"path": "docs/IMPLEMENTATION_ISSUE_REGISTER_v1.4.csv",
|
||||
"severity": "High"
|
||||
},
|
||||
{
|
||||
"code": "malformed_csv",
|
||||
"line": 11,
|
||||
"message": "Expected 11 columns, found 10.",
|
||||
"path": "docs/quality/PHASE_14_MANUAL_QA_RESULTS_v1.0.csv",
|
||||
"severity": "High"
|
||||
},
|
||||
{
|
||||
"code": "loose_content_type_match",
|
||||
"message": "JSON API still uses a prefix media-type check.",
|
||||
"path": "src/",
|
||||
"severity": "Medium"
|
||||
},
|
||||
{
|
||||
"code": "content_type_helper_not_used",
|
||||
"message": "Demo API does not use exact JSON media-type validation.",
|
||||
"path": "src/app/api/demo/route.ts",
|
||||
"severity": "Medium"
|
||||
},
|
||||
{
|
||||
"code": "missing_exact_content_type_control",
|
||||
"message": "Exact application/json media-type helper is absent.",
|
||||
"path": "src/lib/security/content-type.ts",
|
||||
"severity": "Medium"
|
||||
},
|
||||
{
|
||||
"code": "stale_theme_storage_key",
|
||||
"message": "Visual test writes a storage key the application never reads.",
|
||||
"path": "tests/visual/component-system.visual.spec.ts",
|
||||
"severity": "Medium"
|
||||
},
|
||||
{
|
||||
"code": "theme_storage_key_missing",
|
||||
"message": "Visual test does not use the canonical theme storage key.",
|
||||
"path": "tests/visual/component-system.visual.spec.ts",
|
||||
"severity": "Medium"
|
||||
},
|
||||
{
|
||||
"code": "visual_project_scope",
|
||||
"message": "Canonical snapshot test is not restricted to Chromium.",
|
||||
"path": "tests/visual/component-system.visual.spec.ts",
|
||||
"severity": "Medium"
|
||||
},
|
||||
{
|
||||
"code": "visual_project_scope",
|
||||
"message": "Canonical integration snapshots are not restricted to Chromium.",
|
||||
"path": "tests/visual/integrations.visual.spec.ts",
|
||||
"severity": "Medium"
|
||||
}
|
||||
],
|
||||
"metrics": {
|
||||
"csv_files_parsed": 44,
|
||||
"direct_dependencies_exact": true,
|
||||
"direct_dependency_count": 25,
|
||||
"email_fixture_hits": [
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 21,
|
||||
"path": "tests/integration/demo-service.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "ADA@EXAMPLE.TEST",
|
||||
"line": 6,
|
||||
"path": "tests/unit/integrations/demo-schema.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "ada@example.test",
|
||||
"line": 22,
|
||||
"path": "tests/unit/integrations/demo-schema.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 20,
|
||||
"path": "tests/unit/integrations/analytics.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 9,
|
||||
"path": "tests/unit/integrations/redaction.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 36,
|
||||
"path": "tests/browser/integrations/demo-workflow.spec.ts"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 53,
|
||||
"path": "tests/browser/integrations/demo-workflow.spec.ts"
|
||||
},
|
||||
{
|
||||
"address": "private@example.test",
|
||||
"line": 66,
|
||||
"path": "tests/browser/integrations/demo-workflow.spec.ts"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 47,
|
||||
"path": "src/content/development/component-lab.ts"
|
||||
},
|
||||
{
|
||||
"address": "nom@fictif.invalid",
|
||||
"line": 158,
|
||||
"path": "src/content/development/component-lab.ts"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 281,
|
||||
"path": "src/content/development/component-lab.ts"
|
||||
}
|
||||
],
|
||||
"file_count": 467,
|
||||
"issue_register_path": "docs/IMPLEMENTATION_ISSUE_REGISTER_v1.4.csv",
|
||||
"issue_register_rows": 42,
|
||||
"json_files_parsed": 41,
|
||||
"release_gate_path": "docs/phase14/RELEASE_GATE_MATRIX_v1.0.csv",
|
||||
"release_gate_status_counts": {
|
||||
"Blocked": 4,
|
||||
"Blocked by validator": 1,
|
||||
"Environment blocked": 2,
|
||||
"Open": 1,
|
||||
"Partial": 2
|
||||
},
|
||||
"runtime_url_hits": [
|
||||
{
|
||||
"line": 2,
|
||||
"path": ".env.example",
|
||||
"url": "https://your-approved-domain.example"
|
||||
},
|
||||
{
|
||||
"line": 6,
|
||||
"path": "src/lib/localization/site-origin.ts",
|
||||
"url": "http://localhost:3000"
|
||||
},
|
||||
{
|
||||
"line": 2,
|
||||
"path": "src/contracts/phase9/design-tokens.json",
|
||||
"url": "https://design-tokens.github.io/community-group/format/"
|
||||
}
|
||||
],
|
||||
"secret_scan_files": 378,
|
||||
"suffix_counts": {
|
||||
".css": 48,
|
||||
".csv": 44,
|
||||
".duration": 8,
|
||||
".example": 1,
|
||||
".exit": 20,
|
||||
".js": 1,
|
||||
".json": 41,
|
||||
".log": 45,
|
||||
".md": 57,
|
||||
".mjs": 33,
|
||||
".png": 6,
|
||||
".svg": 2,
|
||||
".ts": 74,
|
||||
".tsx": 66,
|
||||
".txt": 8,
|
||||
".yaml": 2,
|
||||
".yml": 2,
|
||||
"<none>": 9
|
||||
},
|
||||
"total_bytes": 2182586,
|
||||
"unresolved_issue_counts": {
|
||||
"Critical": 1,
|
||||
"High": 20,
|
||||
"Low": 2,
|
||||
"Medium": 17
|
||||
}
|
||||
},
|
||||
"passed": false,
|
||||
"root": "/mnt/data/phase14_baseline",
|
||||
"schema_version": "1.0"
|
||||
}
|
||||
@@ -0,0 +1,148 @@
|
||||
# Phase 15 Static Repository Audit
|
||||
|
||||
- Result: **FAIL**
|
||||
- Files inspected: 467
|
||||
- JSON files parsed: 41
|
||||
- CSV files parsed: 44
|
||||
- Secret-scan files: 378
|
||||
- Findings: {"High": 4, "Medium": 7}
|
||||
|
||||
## Findings
|
||||
|
||||
| Severity | Code | Path | Line | Finding |
|
||||
|---|---|---|---:|---|
|
||||
| High | `ci_integration_suite_omitted` | `.github/workflows/ci.yml` | | CI does not execute the demo-service integration suite. |
|
||||
| High | `issue_register_overflow` | `docs/IMPLEMENTATION_ISSUE_REGISTER_v1.4.csv` | | One or more issue-register rows contain overflow columns. |
|
||||
| High | `malformed_csv` | `docs/IMPLEMENTATION_ISSUE_REGISTER_v1.4.csv` | 43 | Expected 9 columns, found 11. |
|
||||
| High | `malformed_csv` | `docs/quality/PHASE_14_MANUAL_QA_RESULTS_v1.0.csv` | 11 | Expected 11 columns, found 10. |
|
||||
| Medium | `loose_content_type_match` | `src/` | | JSON API still uses a prefix media-type check. |
|
||||
| Medium | `content_type_helper_not_used` | `src/app/api/demo/route.ts` | | Demo API does not use exact JSON media-type validation. |
|
||||
| Medium | `missing_exact_content_type_control` | `src/lib/security/content-type.ts` | | Exact application/json media-type helper is absent. |
|
||||
| Medium | `stale_theme_storage_key` | `tests/visual/component-system.visual.spec.ts` | | Visual test writes a storage key the application never reads. |
|
||||
| Medium | `theme_storage_key_missing` | `tests/visual/component-system.visual.spec.ts` | | Visual test does not use the canonical theme storage key. |
|
||||
| Medium | `visual_project_scope` | `tests/visual/component-system.visual.spec.ts` | | Canonical snapshot test is not restricted to Chromium. |
|
||||
| Medium | `visual_project_scope` | `tests/visual/integrations.visual.spec.ts` | | Canonical integration snapshots are not restricted to Chromium. |
|
||||
|
||||
## Metrics
|
||||
|
||||
```json
|
||||
{
|
||||
"csv_files_parsed": 44,
|
||||
"direct_dependencies_exact": true,
|
||||
"direct_dependency_count": 25,
|
||||
"email_fixture_hits": [
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 21,
|
||||
"path": "tests/integration/demo-service.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "ADA@EXAMPLE.TEST",
|
||||
"line": 6,
|
||||
"path": "tests/unit/integrations/demo-schema.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "ada@example.test",
|
||||
"line": 22,
|
||||
"path": "tests/unit/integrations/demo-schema.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 20,
|
||||
"path": "tests/unit/integrations/analytics.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 9,
|
||||
"path": "tests/unit/integrations/redaction.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 36,
|
||||
"path": "tests/browser/integrations/demo-workflow.spec.ts"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 53,
|
||||
"path": "tests/browser/integrations/demo-workflow.spec.ts"
|
||||
},
|
||||
{
|
||||
"address": "private@example.test",
|
||||
"line": 66,
|
||||
"path": "tests/browser/integrations/demo-workflow.spec.ts"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 47,
|
||||
"path": "src/content/development/component-lab.ts"
|
||||
},
|
||||
{
|
||||
"address": "nom@fictif.invalid",
|
||||
"line": 158,
|
||||
"path": "src/content/development/component-lab.ts"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 281,
|
||||
"path": "src/content/development/component-lab.ts"
|
||||
}
|
||||
],
|
||||
"file_count": 467,
|
||||
"issue_register_path": "docs/IMPLEMENTATION_ISSUE_REGISTER_v1.4.csv",
|
||||
"issue_register_rows": 42,
|
||||
"json_files_parsed": 41,
|
||||
"release_gate_path": "docs/phase14/RELEASE_GATE_MATRIX_v1.0.csv",
|
||||
"release_gate_status_counts": {
|
||||
"Blocked": 4,
|
||||
"Blocked by validator": 1,
|
||||
"Environment blocked": 2,
|
||||
"Open": 1,
|
||||
"Partial": 2
|
||||
},
|
||||
"runtime_url_hits": [
|
||||
{
|
||||
"line": 2,
|
||||
"path": ".env.example",
|
||||
"url": "https://your-approved-domain.example"
|
||||
},
|
||||
{
|
||||
"line": 6,
|
||||
"path": "src/lib/localization/site-origin.ts",
|
||||
"url": "http://localhost:3000"
|
||||
},
|
||||
{
|
||||
"line": 2,
|
||||
"path": "src/contracts/phase9/design-tokens.json",
|
||||
"url": "https://design-tokens.github.io/community-group/format/"
|
||||
}
|
||||
],
|
||||
"secret_scan_files": 378,
|
||||
"suffix_counts": {
|
||||
".css": 48,
|
||||
".csv": 44,
|
||||
".duration": 8,
|
||||
".example": 1,
|
||||
".exit": 20,
|
||||
".js": 1,
|
||||
".json": 41,
|
||||
".log": 45,
|
||||
".md": 57,
|
||||
".mjs": 33,
|
||||
".png": 6,
|
||||
".svg": 2,
|
||||
".ts": 74,
|
||||
".tsx": 66,
|
||||
".txt": 8,
|
||||
".yaml": 2,
|
||||
".yml": 2,
|
||||
"<none>": 9
|
||||
},
|
||||
"total_bytes": 2182586,
|
||||
"unresolved_issue_counts": {
|
||||
"Critical": 1,
|
||||
"High": 20,
|
||||
"Low": 2,
|
||||
"Medium": 17
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,185 @@
|
||||
Phase 15 Command Log
|
||||
Date: 2026-06-25
|
||||
|
||||
================================================================================
|
||||
FILE: docs/quality/phase15-command-logs/01-validate.json
|
||||
================================================================================
|
||||
{"command":"node scripts/run-validations.mjs","exit_code":0,"wall_seconds":1,"log":"docs/quality/phase15-command-logs/01-validate.log"}
|
||||
|
||||
================================================================================
|
||||
FILE: docs/quality/phase15-command-logs/01-validate.log
|
||||
================================================================================
|
||||
PASS: Phase 9 contract package is immutable and 61 payload checksums match.
|
||||
PASS: Pinned Node 24.17.0, pnpm 11.9.0, and 25 exact direct dependency versions match the lockfile.
|
||||
PASS: English, French, and Arabic catalogs have exact key parity and valid direction metadata.
|
||||
PASS: 5 route IDs have complete locale, runtime, hash, query, and hreflang contracts.
|
||||
PASS: Phase 9 semantic tokens are unchanged and application styles contain no raw palette colors.
|
||||
PASS: Phase 11 component tokens, theme fallback, and application-shell foundations are present.
|
||||
PASS: 47 CSS files use direction-safe logical declarations.
|
||||
PASS: Runtime source contains no placeholder destination, simulated submission, or research-only backdoor.
|
||||
PASS: Localized canonical, hreflang, Open Graph, social, and robots foundations are present.
|
||||
PASS: 60 inventory entries and 96 component source files satisfy Phase 12 static controls.
|
||||
PASS: Phase 13 homepage composition, content model, destination gates, and test artifacts satisfy static controls.
|
||||
PASS: Phase 14 integration structure, form contract, destinations, and locale resources are present.
|
||||
PASS: Phase 14 environment inventory is explicit and defaults production integrations to blocked.
|
||||
PASS: Phase 14 API boundary includes origin, content-type, size, timeout, idempotency, and no-raw-log controls.
|
||||
PASS: Phase 14 privacy controls prevent browser persistence, URL leakage, and unconsented analytics.
|
||||
|
||||
DURATION_SECONDS=1.37
|
||||
MAX_RSS_KB=140148
|
||||
EXIT_CODE=0
|
||||
|
||||
================================================================================
|
||||
FILE: docs/quality/phase15-command-logs/02-phase14-manifest-baseline.log
|
||||
================================================================================
|
||||
PASS: Phase 14 package manifest verifies 466 repository files with no extras.
|
||||
|
||||
DURATION_SECONDS=0.22
|
||||
MAX_RSS_KB=128988
|
||||
EXIT_CODE=0
|
||||
|
||||
================================================================================
|
||||
FILE: docs/quality/phase15-command-logs/02-phase14-manifest.log
|
||||
================================================================================
|
||||
ERROR: docs/quality/PHASE_15_TOOLCHAIN_SETUP.log: unlisted repository file.
|
||||
ERROR: docs/quality/phase15-command-logs/01-validate.json: unlisted repository file.
|
||||
ERROR: docs/quality/phase15-command-logs/01-validate.log: unlisted repository file.
|
||||
ERROR: docs/quality/phase15-command-logs/02-phase14-manifest.log: unlisted repository file.
|
||||
Command exited with non-zero status 1
|
||||
|
||||
DURATION_SECONDS=0.24
|
||||
MAX_RSS_KB=135248
|
||||
EXIT_CODE=1
|
||||
|
||||
================================================================================
|
||||
FILE: docs/quality/phase15-command-logs/03-syntax-check.log
|
||||
================================================================================
|
||||
COMMAND: node --check all JavaScript modules and node --experimental-strip-types --check all non-JSX TypeScript
|
||||
NODE: v22.16.0
|
||||
PASS: checked 33 JavaScript modules, 69 TypeScript modules, and the Phase 15 Python audit script.
|
||||
|
||||
================================================================================
|
||||
FILE: docs/quality/phase15-command-logs/04-baseline-static-audit.log
|
||||
================================================================================
|
||||
$ python3 scripts/phase15-static-audit.py --root /mnt/data/phase14_baseline
|
||||
{"files": 467, "finding_counts": {"High": 4, "Medium": 7}, "passed": false}
|
||||
Command exited with non-zero status 1
|
||||
elapsed_seconds=1.37 exit_code=1
|
||||
|
||||
================================================================================
|
||||
FILE: docs/quality/phase15-command-logs/05-current-static-audit.log
|
||||
================================================================================
|
||||
{"files": 485, "finding_counts": {}, "passed": true}
|
||||
|
||||
EXIT_CODE=0
|
||||
|
||||
================================================================================
|
||||
FILE: docs/quality/phase15-command-logs/06-current-validations.exit
|
||||
================================================================================
|
||||
0
|
||||
|
||||
================================================================================
|
||||
FILE: docs/quality/phase15-command-logs/06-current-validations.log
|
||||
================================================================================
|
||||
PASS: Phase 9 contract package is immutable and 61 payload checksums match.
|
||||
PASS: Pinned Node 24.17.0, pnpm 11.9.0, and 25 exact direct dependency versions match the lockfile.
|
||||
PASS: English, French, and Arabic catalogs have exact key parity and valid direction metadata.
|
||||
PASS: 5 route IDs have complete locale, runtime, hash, query, and hreflang contracts.
|
||||
PASS: Phase 9 semantic tokens are unchanged and application styles contain no raw palette colors.
|
||||
PASS: Phase 11 component tokens, theme fallback, and application-shell foundations are present.
|
||||
PASS: 47 CSS files use direction-safe logical declarations.
|
||||
PASS: Runtime source contains no placeholder destination, simulated submission, or research-only backdoor.
|
||||
PASS: Localized canonical, hreflang, Open Graph, social, and robots foundations are present.
|
||||
PASS: 60 inventory entries and 96 component source files satisfy Phase 12 static controls.
|
||||
PASS: Phase 13 homepage composition, content model, destination gates, and test artifacts satisfy static controls.
|
||||
PASS: Phase 14 integration structure, form contract, destinations, and locale resources are present.
|
||||
PASS: Phase 14 environment inventory is explicit and defaults production integrations to blocked.
|
||||
PASS: Phase 14 API boundary includes origin, content-type, size, timeout, idempotency, and no-raw-log controls.
|
||||
PASS: Phase 14 privacy controls prevent browser persistence, URL leakage, and unconsented analytics.
|
||||
PASS: Phase 15 evidence CSVs, exact media-type control, deterministic visual setup, and CI test gates are present.
|
||||
|
||||
DURATION_SECONDS=1.78
|
||||
MAX_RSS_KB=139192
|
||||
EXIT_CODE=0
|
||||
|
||||
================================================================================
|
||||
FILE: docs/quality/phase15-command-logs/07-current-static-audit.exit
|
||||
================================================================================
|
||||
0
|
||||
|
||||
================================================================================
|
||||
FILE: docs/quality/phase15-command-logs/07-current-static-audit.log
|
||||
================================================================================
|
||||
{"files": 488, "finding_counts": {}, "passed": true}
|
||||
|
||||
DURATION_SECONDS=1.79
|
||||
MAX_RSS_KB=308700
|
||||
EXIT_CODE=0
|
||||
|
||||
================================================================================
|
||||
FILE: docs/quality/phase15-command-logs/08-content-type-behavior.exit
|
||||
================================================================================
|
||||
0
|
||||
|
||||
================================================================================
|
||||
FILE: docs/quality/phase15-command-logs/08-content-type-behavior.log
|
||||
================================================================================
|
||||
PASS: exact application/json media-type validation; 8 assertions.
|
||||
(node:13288) ExperimentalWarning: Type Stripping is an experimental feature and might change at any time
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
(node:13288) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///mnt/data/phase15_work/src/lib/security/content-type.ts is not specified and it doesn't parse as CommonJS.
|
||||
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
|
||||
To eliminate this warning, add "type": "module" to /mnt/data/phase15_work/package.json.
|
||||
|
||||
DURATION_SECONDS=1.37
|
||||
EXIT_CODE=0
|
||||
|
||||
================================================================================
|
||||
FILE: docs/quality/phase15-command-logs/09-syntax-check.exit
|
||||
================================================================================
|
||||
0
|
||||
|
||||
================================================================================
|
||||
FILE: docs/quality/phase15-command-logs/09-syntax-check.log
|
||||
================================================================================
|
||||
PASS: checked 33 JavaScript modules, 64 TypeScript modules, and 2 Python scripts.
|
||||
|
||||
DURATION_SECONDS=6.76
|
||||
EXIT_CODE=0
|
||||
|
||||
================================================================================
|
||||
FILE: docs/quality/phase15-command-logs/10-final-validations.log
|
||||
================================================================================
|
||||
$ node scripts/run-validations.mjs
|
||||
PASS: Phase 9 contract package is immutable and 61 payload checksums match.
|
||||
PASS: Pinned Node 24.17.0, pnpm 11.9.0, and 25 exact direct dependency versions match the lockfile.
|
||||
PASS: English, French, and Arabic catalogs have exact key parity and valid direction metadata.
|
||||
PASS: 5 route IDs have complete locale, runtime, hash, query, and hreflang contracts.
|
||||
PASS: Phase 9 semantic tokens are unchanged and application styles contain no raw palette colors.
|
||||
PASS: Phase 11 component tokens, theme fallback, and application-shell foundations are present.
|
||||
PASS: 47 CSS files use direction-safe logical declarations.
|
||||
PASS: Runtime source contains no placeholder destination, simulated submission, or research-only backdoor.
|
||||
PASS: Localized canonical, hreflang, Open Graph, social, and robots foundations are present.
|
||||
PASS: 60 inventory entries and 96 component source files satisfy Phase 12 static controls.
|
||||
PASS: Phase 13 homepage composition, content model, destination gates, and test artifacts satisfy static controls.
|
||||
PASS: Phase 14 integration structure, form contract, destinations, and locale resources are present.
|
||||
PASS: Phase 14 environment inventory is explicit and defaults production integrations to blocked.
|
||||
PASS: Phase 14 API boundary includes origin, content-type, size, timeout, idempotency, and no-raw-log controls.
|
||||
PASS: Phase 14 privacy controls prevent browser persistence, URL leakage, and unconsented analytics.
|
||||
PASS: Phase 15 evidence CSVs, exact media-type control, deterministic visual setup, and CI test gates are present.
|
||||
elapsed_seconds=1.52 exit_code=0
|
||||
|
||||
================================================================================
|
||||
FILE: docs/quality/phase15-command-logs/11-final-static-audit-pre-report.log
|
||||
================================================================================
|
||||
$ python3 scripts/phase15-static-audit.py
|
||||
{"files": 544, "finding_counts": {}, "passed": true}
|
||||
elapsed_seconds=1.46 exit_code=0
|
||||
|
||||
================================================================================
|
||||
FILE: docs/quality/phase15-command-logs/13-final-static-audit.log
|
||||
================================================================================
|
||||
$ python3 scripts/phase15-static-audit.py
|
||||
{"files": 544, "finding_counts": {}, "passed": true}
|
||||
elapsed_seconds=1.38 exit_code=0
|
||||
|
||||
@@ -0,0 +1,114 @@
|
||||
Phase 15 File Changes
|
||||
Date: 2026-06-25
|
||||
Baseline: supplied Phase 14 repository ZIP after manifest verification
|
||||
Current: final Phase 15 release-readiness tree before package-manifest generation
|
||||
|
||||
Baseline files: 467
|
||||
Current files: 547
|
||||
Added: 80
|
||||
Changed: 11
|
||||
Removed: 0
|
||||
Unchanged: 456
|
||||
|
||||
ADDED
|
||||
+ docs/DECISION_LOG_v15.0.md | bytes=2592 | sha256=c59ef94dbf9cee22b762acdb7fbe13ea77b14eba2bb12a15196a50a7d4e38f41
|
||||
+ docs/IMPLEMENTATION_ISSUE_REGISTER_v1.5.csv | bytes=15395 | sha256=818eda19723bd1aafe4359831d3f9547e4c6fd545d6ae08313c0a6e5e413dc3f
|
||||
+ docs/PHASE_15_IMPLEMENTATION_REPORT_v1.0.md | bytes=6822 | sha256=b9fa26b635b70eba3e414f553f9def60916535bcc4f2eb9da482231aef28c1d5
|
||||
+ docs/PHASE_16_HANDOFF_v1.0.md | bytes=4583 | sha256=de5d8f974eecf517f61a6b7f7c3f394518efa26cd41771cb57305365e20fa83e
|
||||
+ docs/phase15/ABUSE_CONTROL_REPORT_v1.0.md | bytes=718 | sha256=d56f05fba3ce6670b2fc833f0da3eb6cf7643bb82b61b2fa68f057f211a1ed0e
|
||||
+ docs/phase15/ANALYTICS_VALIDATION_REPORT_v1.0.md | bytes=725 | sha256=2e24b9e1dc7ebcc424bff217d308d73f169ceb2fee8a54ecefdb2ab9d94f9bfe
|
||||
+ docs/phase15/AUTOMATED_ACCESSIBILITY_REPORT_v1.0.md | bytes=545 | sha256=1647ac95ffc1c8ec3df901dafaf7954166b9bad7fb0c147eb3acfe9020befec2
|
||||
+ docs/phase15/BROWSER_HISTORY_REPORT_v1.0.md | bytes=684 | sha256=b33b65266826d986bf90164e3ab01bb80c61049c7679b189968d201e06c0511f
|
||||
+ docs/phase15/BUNDLE_ANALYSIS_REPORT_v1.0.md | bytes=698 | sha256=245d4a1f9fd5d91eb1b2941676c9eef390426f27aade7b24e2366951f03e079e
|
||||
+ docs/phase15/CLEAN_ROOM_BASELINE_REPORT_v1.0.md | bytes=939 | sha256=61423268ab8f5a75decb112f0cb4a62b7b3b3954bf6a7ca11cf688c569910e4d
|
||||
+ docs/phase15/COMMAND_MATRIX_v1.0.csv | bytes=6523 | sha256=eaeaaca0e3b7b74a4768ca6303486eae273e6bad575f5c3b41b61bb8c63e4700
|
||||
+ docs/phase15/CONSENT_VALIDATION_REPORT_v1.0.md | bytes=774 | sha256=f1a9eb92eb164532f82000a4655a7310fa9103f9140529cc5f7eb12b74a5c795
|
||||
+ docs/phase15/CONTENT_EVIDENCE_REVIEW_v1.0.md | bytes=794 | sha256=e7f1c8350fc3cedec81e089a2b076fab4de740d2bb003171f42ad35d343e04f5
|
||||
+ docs/phase15/CROSS_BROWSER_TEST_REPORT_v1.0.md | bytes=646 | sha256=ed06fa73e138f99131882ffbce8340c6b61d727396a38ed37eb40e70526dd539
|
||||
+ docs/phase15/DEFECT_REGISTER_v1.0.csv | bytes=3919 | sha256=8906ccb503e5ea62b8d7fa74f60e188d7ffedf61dc866462895d0616cea8f212
|
||||
+ docs/phase15/DEPLOYMENT_REHEARSAL_REPORT_v1.0.md | bytes=646 | sha256=3d4c41f057091efb3034ca56fe9f1e3625777e86d7c4168c627c02180dcb9202
|
||||
+ docs/phase15/DESIGN_FIDELITY_REPORT_v1.0.md | bytes=631 | sha256=32e63d3665f3fda5095424402e88a98f30816b0c4e82a6ee297150dee6a5be4e
|
||||
+ docs/phase15/DESTINATION_BROKEN_LINK_REPORT_v1.0.md | bytes=781 | sha256=ce69dd34db9e9587495b1f82c68173506ddde20410a70458b37f561590fd1289
|
||||
+ docs/phase15/DEVICE_VIEWPORT_REPORT_v1.0.md | bytes=630 | sha256=e6e9287808a3279b45782c69f9cf6de5229f80ece51b0ca5fadf7ac800183789
|
||||
+ docs/phase15/END_TO_END_TEST_REPORT_v1.0.md | bytes=692 | sha256=d58adbb88000647a6b8a921e1f1902c17c0cda892cbe137d9b5964b68f22d13d
|
||||
+ docs/phase15/FAILURE_SIMULATION_REPORT_v1.0.md | bytes=635 | sha256=f2e5cea8b80ad0369c07d31b795885ffa885e6e9360881c1f7ceac758ea093ed
|
||||
+ docs/phase15/FINAL_RELEASE_RECOMMENDATION_v1.0.md | bytes=2743 | sha256=08209591849ce8663423e3eb5eef1c5309e80c087c7b8a7dfc8d68bd71a8839b
|
||||
+ docs/phase15/IDEMPOTENCY_DUPLICATE_REPORT_v1.0.md | bytes=744 | sha256=ed5478b42914d736866b4e4916337f698a5fb309455868f1f958d01d0f5415fc
|
||||
+ docs/phase15/IMAGE_FONT_PERFORMANCE_REPORT_v1.0.md | bytes=770 | sha256=b28fb2b989f8a3457ae5c48433fbb3f27337d24fea00db8be451b52f461f1e45
|
||||
+ docs/phase15/INTEGRATION_TEST_REPORT_v1.0.md | bytes=858 | sha256=c51b4629b42f4175840f822717153fff72f311b53c638de3227761afb51e8bbb
|
||||
+ docs/phase15/KEYBOARD_ACCESSIBILITY_REPORT_v1.0.md | bytes=602 | sha256=fd7dcca8715f727326e5a7fdd49532f95c58ef092a2374def637717ee6755504
|
||||
+ docs/phase15/LOCALIZATION_QA_REPORT_v1.0.md | bytes=712 | sha256=93f20fe6b0f5a064c5a3a0f9f7b2e8483f30feafb06bdf789a0e0b73c3761deb
|
||||
+ docs/phase15/MANUAL_TEST_MATRIX_v1.0.csv | bytes=1196 | sha256=d953be08010beb84b68e701b534a7c91cbe550cb73c29cc5aeb86ac9c523ca4b
|
||||
+ docs/phase15/OBSERVABILITY_VALIDATION_REPORT_v1.0.md | bytes=610 | sha256=5c42216a452694bfc6b1ef015a6fc4ff6ea9da261810f64212e676dd40a60c50
|
||||
+ docs/phase15/PERFORMANCE_REPORT_v1.0.md | bytes=753 | sha256=aa6d44c92788e5f81910ad04609e81bec6d3afa2ef689eb335b30fa25d94bde4
|
||||
+ docs/phase15/PRIVACY_VALIDATION_REPORT_v1.0.md | bytes=789 | sha256=8e04998010b052f041f88639fc695df4f3f31576feb248bbbe0604e066fb25bc
|
||||
+ docs/phase15/RELEASE_GATE_MATRIX_v1.0.csv | bytes=3258 | sha256=9d7254919043b08c3e3e60574bc8825817d4e6ec08f48a97e8194fa020b5571e
|
||||
+ docs/phase15/REPOSITORY_INTEGRITY_AUDIT_v1.0.md | bytes=850 | sha256=f88c5d2aac92dc1d1c569d5f69b1fbab4e9d170ff1fbdacdd9ad29dda0b6deb5
|
||||
+ docs/phase15/RETEST_REPORT_v1.0.md | bytes=738 | sha256=dff702ec540e9046da64800f168ca818b2de2c638a85c684c42dc2097cf8193a
|
||||
+ docs/phase15/RISK_ACCEPTANCE_REGISTER_v1.0.csv | bytes=98 | sha256=51359ece589175db561b8e857c14ed1ee36594d2921b7f1e37d7981d5d544d8d
|
||||
+ docs/phase15/RISK_ACCEPTANCE_SUMMARY_v1.0.md | bytes=149 | sha256=fa52be6a049910986cc528696d96067ac2784c7641dd19c1665c67cd431f6439
|
||||
+ docs/phase15/ROLLBACK_REHEARSAL_REPORT_v1.0.md | bytes=601 | sha256=3af1fbd033a14f2a2a36d9eb334fd447396c631f8cf92de69a12944ee464e2dd
|
||||
+ docs/phase15/RTL_QA_REPORT_v1.0.md | bytes=736 | sha256=26b4a61e973451e319dd50658bd1a7234f264b3abd701a2107ede1a64a425a09
|
||||
+ docs/phase15/SCREEN_READER_REPORT_v1.0.md | bytes=658 | sha256=59e983f4e89a449bf982a53753f59d77f941800ca4a4303c6ae111ed0f0f80c1
|
||||
+ docs/phase15/SECURITY_VALIDATION_REPORT_v1.0.md | bytes=943 | sha256=3653103c7eb52420143056f8ba40c86023fd742b39a52177c9cbc0ce414a3309
|
||||
+ docs/phase15/SEO_METADATA_REVIEW_v1.0.md | bytes=675 | sha256=e7a475200c09a016e6500c7417a0fb9d713899aace20b2814e0e134f2d76dd0a
|
||||
+ docs/phase15/STATIC_ANALYSIS_REPORT_v1.0.md | bytes=961 | sha256=13a392beacefd2fe814e3eb91504d2d27b19c029ff48169cd43f5f0d8ab2c385
|
||||
+ docs/phase15/THEME_QA_REPORT_v1.0.md | bytes=662 | sha256=031e26a400ae401cf92956913e5a5125d2e3db35532d8c03eff1ae480941b292
|
||||
+ docs/phase15/UNIT_TEST_REPORT_v1.0.md | bytes=781 | sha256=080982bbf26c06c7bee39bcbac2bd7abee7f543e3d4a7441b29cf3a5cdf033e1
|
||||
+ docs/phase15/VISUAL_REGRESSION_REPORT_v1.0.md | bytes=674 | sha256=fe2d467b20c387f879023db4e806a1a31072bca546741b7a3e540011e04a7086
|
||||
+ docs/phase15/WCAG_2_2_AA_EVIDENCE_MATRIX_v1.0.csv | bytes=5049 | sha256=26b7a86b005dc3014da833a27eec5b0bda0135cd5c4942a55714162ff4c7569f
|
||||
+ docs/phase15/ZOOM_REFLOW_REPORT_v1.0.md | bytes=652 | sha256=2e4d188a04af2d50d8804bcb6b702691e9e06b6de98607d3a455fd480b19a7de
|
||||
+ docs/quality/PHASE_15_BASELINE_STATIC_AUDIT_RESULTS_v1.0.json | bytes=5595 | sha256=4cf636fd2a163700b666f0a04946b453dd22c4a4b43bc03bb420c3760a37353d
|
||||
+ docs/quality/PHASE_15_BASELINE_STATIC_AUDIT_RESULTS_v1.0.md | bytes=4606 | sha256=0f3fb7ce9257fadfb7819143ad6a840ab1b6a5a848d0a8e3b19972e430cb0bab
|
||||
+ docs/quality/PHASE_15_COMMAND_LOG_v1.0.txt | bytes=11190 | sha256=b92aea4d16329cc54aab02e2dd035275425d3703a7e17703aa31f3224f78a484
|
||||
+ docs/quality/PHASE_15_STATIC_AUDIT_RESULTS_v1.0.json | bytes=3211 | sha256=ef3216e76c58a1656f68cae7d6a792a0da6ea5e63465bf3879c610ab235b3158
|
||||
+ docs/quality/PHASE_15_STATIC_AUDIT_RESULTS_v1.0.md | bytes=3065 | sha256=595afc2c185c9d091ca952325b37a268b357478a23467ea920e4945f86b6ab9a
|
||||
+ docs/quality/PHASE_15_TOOLCHAIN_SETUP.log | bytes=1554 | sha256=313029491c83cc00c9abf5e8ab63db6bd350c9bb94d5e2b80415fd716091db64
|
||||
+ docs/quality/PHASE_15_VALIDATION_RESULTS_v1.0.json | bytes=2479 | sha256=ae6fd775d5d6a67406b59296796ea3f904b79a78cc24a33f85cf2b4b87067008
|
||||
+ docs/quality/PHASE_15_VALIDATION_RESULTS_v1.0.md | bytes=1515 | sha256=1c50f03fbeee648e398f51499b9348245cb2b85edfad9e21f5eb14415454d7c9
|
||||
+ docs/quality/phase15-command-logs/01-validate.json | bytes=136 | sha256=690ec5e56e1c2d1260bbda500aae6935eec51c7e1c957ac8043d3b5eacf8fe45
|
||||
+ docs/quality/phase15-command-logs/01-validate.log | bytes=1482 | sha256=a8702ea1ad801f38a464f52e1961f4d0301082499f928e38290e8c9a3ad0a38c
|
||||
+ docs/quality/phase15-command-logs/02-phase14-manifest-baseline.log | bytes=131 | sha256=e1bc16ca75ee3f5fc063bee211ed1aebebff3365039c0c0558817467c4e4e13d
|
||||
+ docs/quality/phase15-command-logs/02-phase14-manifest.log | bytes=428 | sha256=d304fc1d9d340a8af6588bc023099451663d47d300c4787aff5a30e693cd4ec4
|
||||
+ docs/quality/phase15-command-logs/03-syntax-check.log | bytes=225 | sha256=99246276d42a08b275fc645efc9f84a762534bd51b3f88888676fcba28d54744
|
||||
+ docs/quality/phase15-command-logs/04-baseline-static-audit.log | bytes=223 | sha256=09c63142e71f71f0f0f5c652902a32b0a1cbd1908e9eadf5830ff71659643905
|
||||
+ docs/quality/phase15-command-logs/05-current-static-audit.log | bytes=66 | sha256=8785c8611db8a489da6792f6377236f4c9b9c1a0f5ac5636986e206c03b6f36c
|
||||
+ docs/quality/phase15-command-logs/06-current-validations.exit | bytes=2 | sha256=9a271f2a916b0b6ee6cecb2426f0b3206ef074578be55d9bc94f6f3fe3ab86aa
|
||||
+ docs/quality/phase15-command-logs/06-current-validations.log | bytes=1597 | sha256=2d44d3eea802e5b8f17b9c9eb01c1280276e7cb30a3617f9226bf552af18922e
|
||||
+ docs/quality/phase15-command-logs/07-current-static-audit.exit | bytes=2 | sha256=9a271f2a916b0b6ee6cecb2426f0b3206ef074578be55d9bc94f6f3fe3ab86aa
|
||||
+ docs/quality/phase15-command-logs/07-current-static-audit.log | bytes=106 | sha256=175b57f0a4b5dd6f7293d8534050b6cefbd98c899a2fb686b8d4d9f5c6917f0c
|
||||
+ docs/quality/phase15-command-logs/08-content-type-behavior.exit | bytes=2 | sha256=9a271f2a916b0b6ee6cecb2426f0b3206ef074578be55d9bc94f6f3fe3ab86aa
|
||||
+ docs/quality/phase15-command-logs/08-content-type-behavior.log | bytes=643 | sha256=2e1077c48d47f02ae73c2ee7b9006b1ef887faae6b6eb04be673d5f395825ab4
|
||||
+ docs/quality/phase15-command-logs/09-syntax-check.exit | bytes=2 | sha256=9a271f2a916b0b6ee6cecb2426f0b3206ef074578be55d9bc94f6f3fe3ab86aa
|
||||
+ docs/quality/phase15-command-logs/09-syntax-check.log | bytes=117 | sha256=0ef5177d69f49bdbf89a8b9a6bcef2110728108969453dcc36f27a0b1ce83161
|
||||
+ docs/quality/phase15-command-logs/10-final-validations.log | bytes=1612 | sha256=a48348ed8aaa988ad1c267603e272725d5be2d057ed4915868c871a0678a1935
|
||||
+ docs/quality/phase15-command-logs/11-final-static-audit-pre-report.log | bytes=128 | sha256=c806167d316db60d36fb6069f03ce47c623d43ce6710c77fb6b03ccc7144e1c5
|
||||
+ docs/quality/phase15-command-logs/13-final-static-audit.log | bytes=128 | sha256=f0bdbb5e1d170a394eec143cb960a8ba62355edfcbe5fa5bc10cbe39565d876c
|
||||
+ scripts/generate-phase15-manifest.mjs | bytes=1889 | sha256=483f9b1222368fe9bd255d5d4b07d1f8ea6898b575c0e07a13c5f693ef70f932
|
||||
+ scripts/generate-phase15-reports.py | bytes=67112 | sha256=23bba1a926c5696ee9c02a3a6861f931426e452ea803d757f81d79c5dd83a1e8
|
||||
+ scripts/phase15-static-audit.py | bytes=17442 | sha256=9a72263a697c17e157432dab091a2f30cc0fa2a6019cb5e521c9af57e949ac5a
|
||||
+ scripts/validate-phase15-manifest.mjs | bytes=2673 | sha256=129ea44a368c82e130c803156cf8096342438545571accd1ed700cd768bdf5a4
|
||||
+ scripts/validate-phase15-readiness.mjs | bytes=3472 | sha256=6764887cce0b291f6e210492a41ec515369d5146802e6fb0fdd5a6906d42e792
|
||||
+ src/lib/security/content-type.ts | bytes=385 | sha256=8179360d02d132a2d386a89523a470455977544b2286628cff4c60e50d71105a
|
||||
+ tests/unit/integrations/content-type.test.ts | bytes=570 | sha256=6c55b144602bae6ad9bfb9f09f2aa752dd46dc32e662aaa4642d045da22c7731
|
||||
|
||||
CHANGED
|
||||
~ .dockerignore | before_bytes=97 | before_sha256=d78b037a836881c2d63f074d525b8027b2ecb06fefe3af4d5356327ec01dc5e1 | after_bytes=116 | after_sha256=f5c4f2a6bb5aee2eab9e3c5f838dba58c97bf62ef432bdc181778cf4a167e78c
|
||||
~ .github/workflows/ci.yml | before_bytes=1739 | before_sha256=c3d1671011688d7ebc4be9f38265e82b290b1aefc9ddd237c1d82fafd3e765f4 | after_bytes=1967 | after_sha256=1f539bcae4f26429b959690339a57ad8abd200fed149a2ee786ed6b27f769bb3
|
||||
~ .gitignore | before_bytes=135 | before_sha256=01c7cded7467134f023106b85684e3ce5df721149fc3ff4af5e02ef79541bb14 | after_bytes=155 | after_sha256=7a502eb52bc55e5be5e971624211c692f279d7c8d85e1b89a5abc3e2e5c7c9d5
|
||||
~ README.md | before_bytes=4499 | before_sha256=af6addc1b409a534512759c6495a1112ac0895c0d1b5589025fa6355ce2b1c10 | after_bytes=5544 | after_sha256=6c65fce47358960186dc639f267b3d18c97d9eb56325772c5318a088fafa5915
|
||||
~ docs/IMPLEMENTATION_ISSUE_REGISTER_v1.4.csv | before_bytes=13058 | before_sha256=cd2fb58000d337c6abf5ae767a848472e71488a7cd2abda1e0a89d50bdce7a35 | after_bytes=13060 | after_sha256=fea9c6bbe4db7a72b5f58a9dcffd215514915e3eae79941b104e195b1ec42bd2
|
||||
~ docs/quality/PHASE_14_MANUAL_QA_RESULTS_v1.0.csv | before_bytes=2082 | before_sha256=3c65888853cd8e1c1b04cffb9cf851916a6db7fd29e93af7b2cc5d90faf084cc | after_bytes=2086 | after_sha256=e7a3c123fa363bc18d6f4f150e34a4ec0f47836f0cdc60e4a6ac4d02a6961a6f
|
||||
~ package.json | before_bytes=3716 | before_sha256=a00be27528360c8e7efb11c4084b14a00aac7c5414552a4fc97beb40f7a96a9a | after_bytes=3975 | after_sha256=e894298ee2078480a3a14e5582f5972cb64a2890ca0022f8085ce634351ec4e2
|
||||
~ scripts/run-validations.mjs | before_bytes=754 | before_sha256=a36eff2467b22be74c46579f4193d40b779474cd90f401ebc8fc93ab843ec540 | after_bytes=790 | after_sha256=5a443dbb37ebeffacd32c214b94ac6d2c316fc6bf16e19c0719b608345a8aa6a
|
||||
~ src/app/api/demo/route.ts | before_bytes=4458 | before_sha256=08f6b254967a69f551988a3d6ced3ee388b53746d26100c5c53094422a6910fd | after_bytes=4491 | after_sha256=5f9f17acf083d42e6c74af48a75c82a253abaee97788bfa07c6d0e480caeaf70
|
||||
~ tests/visual/component-system.visual.spec.ts | before_bytes=799 | before_sha256=60a3ca791efaacf0ca1b38209edfdfe95105740e25228f781ddf771134b82e18 | after_bytes=899 | after_sha256=983ee872b9b7a1993ccaafb8c3ea2ee4fb82cf562a5f9e1521de29faa307c8e7
|
||||
~ tests/visual/integrations.visual.spec.ts | before_bytes=884 | before_sha256=0928c78c3c3fee8053861d5db88c1f946a80c22a6649f61869bdcfadc2bc7ea9 | after_bytes=984 | after_sha256=71896bfb083931ab8bf434dd85911cc50c82e854744b871ff31c1f3f4ad650a5
|
||||
|
||||
REMOVED
|
||||
(none)
|
||||
|
||||
Notes
|
||||
- Immutable Phase 9 contracts were not modified.
|
||||
- Generated caches and dependency/build outputs are excluded.
|
||||
- This inventory, the Phase 15 package manifest, and its self-validation log are excluded to avoid self-referential hashes.
|
||||
@@ -0,0 +1,126 @@
|
||||
{
|
||||
"audit": "Phase 15 dependency-free static repository audit",
|
||||
"finding_counts": {},
|
||||
"findings": [],
|
||||
"metrics": {
|
||||
"csv_files_parsed": 51,
|
||||
"direct_dependencies_exact": true,
|
||||
"direct_dependency_count": 25,
|
||||
"email_fixture_hits": [
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 21,
|
||||
"path": "tests/integration/demo-service.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "ADA@EXAMPLE.TEST",
|
||||
"line": 6,
|
||||
"path": "tests/unit/integrations/demo-schema.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "ada@example.test",
|
||||
"line": 22,
|
||||
"path": "tests/unit/integrations/demo-schema.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 20,
|
||||
"path": "tests/unit/integrations/analytics.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 9,
|
||||
"path": "tests/unit/integrations/redaction.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 36,
|
||||
"path": "tests/browser/integrations/demo-workflow.spec.ts"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 53,
|
||||
"path": "tests/browser/integrations/demo-workflow.spec.ts"
|
||||
},
|
||||
{
|
||||
"address": "private@example.test",
|
||||
"line": 66,
|
||||
"path": "tests/browser/integrations/demo-workflow.spec.ts"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 47,
|
||||
"path": "src/content/development/component-lab.ts"
|
||||
},
|
||||
{
|
||||
"address": "nom@fictif.invalid",
|
||||
"line": 158,
|
||||
"path": "src/content/development/component-lab.ts"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 281,
|
||||
"path": "src/content/development/component-lab.ts"
|
||||
}
|
||||
],
|
||||
"file_count": 546,
|
||||
"issue_register_path": "docs/IMPLEMENTATION_ISSUE_REGISTER_v1.5.csv",
|
||||
"issue_register_rows": 47,
|
||||
"json_files_parsed": 44,
|
||||
"release_gate_path": "docs/phase15/RELEASE_GATE_MATRIX_v1.0.csv",
|
||||
"release_gate_status_counts": {
|
||||
"Blocked": 16,
|
||||
"Open": 1,
|
||||
"Passed": 3
|
||||
},
|
||||
"runtime_url_hits": [
|
||||
{
|
||||
"line": 2,
|
||||
"path": ".env.example",
|
||||
"url": "https://your-approved-domain.example"
|
||||
},
|
||||
{
|
||||
"line": 6,
|
||||
"path": "src/lib/localization/site-origin.ts",
|
||||
"url": "http://localhost:3000"
|
||||
},
|
||||
{
|
||||
"line": 2,
|
||||
"path": "src/contracts/phase9/design-tokens.json",
|
||||
"url": "https://design-tokens.github.io/community-group/format/"
|
||||
}
|
||||
],
|
||||
"secret_scan_files": 435,
|
||||
"suffix_counts": {
|
||||
".css": 48,
|
||||
".csv": 51,
|
||||
".duration": 8,
|
||||
".example": 1,
|
||||
".exit": 24,
|
||||
".js": 1,
|
||||
".json": 44,
|
||||
".log": 60,
|
||||
".md": 98,
|
||||
".mjs": 36,
|
||||
".png": 6,
|
||||
".py": 2,
|
||||
".svg": 2,
|
||||
".ts": 76,
|
||||
".tsx": 66,
|
||||
".txt": 10,
|
||||
".yaml": 2,
|
||||
".yml": 2,
|
||||
"<none>": 9
|
||||
},
|
||||
"total_bytes": 2490086,
|
||||
"unresolved_issue_counts": {
|
||||
"Critical": 1,
|
||||
"High": 21,
|
||||
"Low": 2,
|
||||
"Medium": 17
|
||||
}
|
||||
},
|
||||
"passed": true,
|
||||
"root": "/mnt/data/phase15_work",
|
||||
"schema_version": "1.0"
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
# Phase 15 Static Repository Audit
|
||||
|
||||
- Result: **PASS**
|
||||
- Files inspected: 546
|
||||
- JSON files parsed: 44
|
||||
- CSV files parsed: 51
|
||||
- Secret-scan files: 435
|
||||
- Findings: {}
|
||||
|
||||
## Findings
|
||||
|
||||
No Critical, High, Medium, Low, or informational findings were produced by this audit.
|
||||
|
||||
## Metrics
|
||||
|
||||
```json
|
||||
{
|
||||
"csv_files_parsed": 51,
|
||||
"direct_dependencies_exact": true,
|
||||
"direct_dependency_count": 25,
|
||||
"email_fixture_hits": [
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 21,
|
||||
"path": "tests/integration/demo-service.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "ADA@EXAMPLE.TEST",
|
||||
"line": 6,
|
||||
"path": "tests/unit/integrations/demo-schema.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "ada@example.test",
|
||||
"line": 22,
|
||||
"path": "tests/unit/integrations/demo-schema.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 20,
|
||||
"path": "tests/unit/integrations/analytics.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 9,
|
||||
"path": "tests/unit/integrations/redaction.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 36,
|
||||
"path": "tests/browser/integrations/demo-workflow.spec.ts"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 53,
|
||||
"path": "tests/browser/integrations/demo-workflow.spec.ts"
|
||||
},
|
||||
{
|
||||
"address": "private@example.test",
|
||||
"line": 66,
|
||||
"path": "tests/browser/integrations/demo-workflow.spec.ts"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 47,
|
||||
"path": "src/content/development/component-lab.ts"
|
||||
},
|
||||
{
|
||||
"address": "nom@fictif.invalid",
|
||||
"line": 158,
|
||||
"path": "src/content/development/component-lab.ts"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 281,
|
||||
"path": "src/content/development/component-lab.ts"
|
||||
}
|
||||
],
|
||||
"file_count": 546,
|
||||
"issue_register_path": "docs/IMPLEMENTATION_ISSUE_REGISTER_v1.5.csv",
|
||||
"issue_register_rows": 47,
|
||||
"json_files_parsed": 44,
|
||||
"release_gate_path": "docs/phase15/RELEASE_GATE_MATRIX_v1.0.csv",
|
||||
"release_gate_status_counts": {
|
||||
"Blocked": 16,
|
||||
"Open": 1,
|
||||
"Passed": 3
|
||||
},
|
||||
"runtime_url_hits": [
|
||||
{
|
||||
"line": 2,
|
||||
"path": ".env.example",
|
||||
"url": "https://your-approved-domain.example"
|
||||
},
|
||||
{
|
||||
"line": 6,
|
||||
"path": "src/lib/localization/site-origin.ts",
|
||||
"url": "http://localhost:3000"
|
||||
},
|
||||
{
|
||||
"line": 2,
|
||||
"path": "src/contracts/phase9/design-tokens.json",
|
||||
"url": "https://design-tokens.github.io/community-group/format/"
|
||||
}
|
||||
],
|
||||
"secret_scan_files": 435,
|
||||
"suffix_counts": {
|
||||
".css": 48,
|
||||
".csv": 51,
|
||||
".duration": 8,
|
||||
".example": 1,
|
||||
".exit": 24,
|
||||
".js": 1,
|
||||
".json": 44,
|
||||
".log": 60,
|
||||
".md": 98,
|
||||
".mjs": 36,
|
||||
".png": 6,
|
||||
".py": 2,
|
||||
".svg": 2,
|
||||
".ts": 76,
|
||||
".tsx": 66,
|
||||
".txt": 10,
|
||||
".yaml": 2,
|
||||
".yml": 2,
|
||||
"<none>": 9
|
||||
},
|
||||
"total_bytes": 2490086,
|
||||
"unresolved_issue_counts": {
|
||||
"Critical": 1,
|
||||
"High": 21,
|
||||
"Low": 2,
|
||||
"Medium": 17
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,97 @@
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"project": "RentalDriveGo",
|
||||
"phase": 15,
|
||||
"date": "2026-06-25",
|
||||
"release_recommendation": "Not ready for Phase 16",
|
||||
"environment": {
|
||||
"os": "Debian GNU/Linux 13",
|
||||
"node": "v22.16.0",
|
||||
"npm": "10.9.2",
|
||||
"corepack": "0.32.0",
|
||||
"python": "3.13.5",
|
||||
"required_node": "24.17.0",
|
||||
"required_pnpm": "11.9.0"
|
||||
},
|
||||
"clean_install": {
|
||||
"status": "blocked",
|
||||
"reason": "Pinned pnpm unavailable and registry DNS unavailable; no lockfile update attempted."
|
||||
},
|
||||
"baseline_static_audit": {
|
||||
"passed": false,
|
||||
"file_count": 467,
|
||||
"finding_counts": {
|
||||
"High": 4,
|
||||
"Medium": 7
|
||||
}
|
||||
},
|
||||
"current_static_audit": {
|
||||
"passed": true,
|
||||
"file_count": 546,
|
||||
"finding_counts": {}
|
||||
},
|
||||
"dependency_free_validation": {
|
||||
"validators": 16,
|
||||
"passed": 16,
|
||||
"failed": 0
|
||||
},
|
||||
"targeted_content_type_assertions": {
|
||||
"assertions": 8,
|
||||
"passed": 8,
|
||||
"failed": 0,
|
||||
"warnings": 2
|
||||
},
|
||||
"syntax_validation": {
|
||||
"javascript_modules": 33,
|
||||
"typescript_modules": 64,
|
||||
"python_scripts": 2,
|
||||
"passed": 99,
|
||||
"failed": 0
|
||||
},
|
||||
"fixed_defects": {
|
||||
"Critical": 0,
|
||||
"High": 2,
|
||||
"Medium": 2,
|
||||
"Low": 0
|
||||
},
|
||||
"unresolved_cumulative_issue_register": {
|
||||
"Critical": 1,
|
||||
"High": 21,
|
||||
"Medium": 17,
|
||||
"Low": 2
|
||||
},
|
||||
"accepted_exceptions": 0,
|
||||
"command_status_counts": {
|
||||
"Passed": 5,
|
||||
"Blocked": 1,
|
||||
"Not executed - prerequisite blocked": 1,
|
||||
"Failed as expected - baseline findings": 1,
|
||||
"Passed with runtime warnings": 1,
|
||||
"Not executed - clean install blocked": 17
|
||||
},
|
||||
"blocked_major_gates": [
|
||||
"clean install",
|
||||
"formatting",
|
||||
"lint",
|
||||
"strict typecheck",
|
||||
"current unit tests",
|
||||
"current integration tests",
|
||||
"browser/end-to-end tests",
|
||||
"automated accessibility",
|
||||
"manual keyboard and screen-reader tests",
|
||||
"visual regression",
|
||||
"performance and bundle analysis",
|
||||
"dependency audit",
|
||||
"production build",
|
||||
"deployment rehearsal",
|
||||
"rollback rehearsal"
|
||||
],
|
||||
"evidence": {
|
||||
"implementation_report": "docs/PHASE_15_IMPLEMENTATION_REPORT_v1.0.md",
|
||||
"command_matrix": "docs/phase15/COMMAND_MATRIX_v1.0.csv",
|
||||
"defect_register": "docs/phase15/DEFECT_REGISTER_v1.0.csv",
|
||||
"release_gate_matrix": "docs/phase15/RELEASE_GATE_MATRIX_v1.0.csv",
|
||||
"final_recommendation": "docs/phase15/FINAL_RELEASE_RECOMMENDATION_v1.0.md",
|
||||
"phase16_handoff": "docs/PHASE_16_HANDOFF_v1.0.md"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
# Phase 15 Validation Results
|
||||
|
||||
**Date:** 2026-06-25
|
||||
**Recommendation:** **Not ready for Phase 16**
|
||||
|
||||
## Executed results
|
||||
|
||||
- Supplied Phase 14 package manifest: passed, 466 files verified.
|
||||
- Dependency-free repository validators: 16 passed, 0 failed.
|
||||
- Baseline static audit: 4 High and 7 Medium findings.
|
||||
- Current static audit: passed with zero findings.
|
||||
- Exact media-type behavior assertions: 8 passed, 0 failed, 2 Node experimental-runtime warnings.
|
||||
- Defects fixed in Phase 15: 2 High and 2 Medium.
|
||||
- Accepted exceptions: 0.
|
||||
|
||||
## Blocked results
|
||||
|
||||
The exact frozen dependency installation could not run because Node 24.17.0 and pnpm 11.9.0 were unavailable and registry DNS could not activate the pinned package manager. Formatting, linting, strict type checking, current unit and integration tests, browser/end-to-end execution, automated and manual accessibility, visual regression, performance, dependency audit, production build, deployment rehearsal, and rollback rehearsal remain unexecuted for this release candidate.
|
||||
|
||||
Historical Phase 14 results are retained for traceability but are not reported as current Phase 15 passes. The cumulative unresolved issue register contains 1 Critical, 21 High, 17 Medium, and 2 Low items.
|
||||
|
||||
## Evidence
|
||||
|
||||
- `docs/PHASE_15_IMPLEMENTATION_REPORT_v1.0.md`
|
||||
- `docs/phase15/COMMAND_MATRIX_v1.0.csv`
|
||||
- `docs/phase15/DEFECT_REGISTER_v1.0.csv`
|
||||
- `docs/phase15/RELEASE_GATE_MATRIX_v1.0.csv`
|
||||
- `docs/phase15/FINAL_RELEASE_RECOMMENDATION_v1.0.md`
|
||||
- `docs/PHASE_16_HANDOFF_v1.0.md`
|
||||
@@ -0,0 +1,565 @@
|
||||
{
|
||||
"audit": "Phase 16 dependency-free static repository audit",
|
||||
"finding_counts": {},
|
||||
"findings": [],
|
||||
"metrics": {
|
||||
"csv_files_parsed": 81,
|
||||
"direct_dependencies_exact": true,
|
||||
"direct_dependency_count": 25,
|
||||
"email_fixture_hits": [
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 21,
|
||||
"path": "tests/integration/demo-service.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "ADA@EXAMPLE.TEST",
|
||||
"line": 6,
|
||||
"path": "tests/unit/integrations/demo-schema.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "ada@example.test",
|
||||
"line": 22,
|
||||
"path": "tests/unit/integrations/demo-schema.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 20,
|
||||
"path": "tests/unit/integrations/analytics.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 9,
|
||||
"path": "tests/unit/integrations/redaction.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 36,
|
||||
"path": "tests/browser/integrations/demo-workflow.spec.ts"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 53,
|
||||
"path": "tests/browser/integrations/demo-workflow.spec.ts"
|
||||
},
|
||||
{
|
||||
"address": "private@example.test",
|
||||
"line": 66,
|
||||
"path": "tests/browser/integrations/demo-workflow.spec.ts"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 47,
|
||||
"path": "src/content/development/component-lab.ts"
|
||||
},
|
||||
{
|
||||
"address": "nom@fictif.invalid",
|
||||
"line": 158,
|
||||
"path": "src/content/development/component-lab.ts"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 281,
|
||||
"path": "src/content/development/component-lab.ts"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 11,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "ADA@EXAMPLE.TEST",
|
||||
"line": 16,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "ada@example.test",
|
||||
"line": 21,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 26,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 31,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 36,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 41,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "private@example.test",
|
||||
"line": 46,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 51,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "nom@fictif.invalid",
|
||||
"line": 56,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 61,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 23,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "ADA@EXAMPLE.TEST",
|
||||
"line": 28,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "ada@example.test",
|
||||
"line": 33,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 38,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 43,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 48,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 53,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "private@example.test",
|
||||
"line": 58,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 63,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "nom@fictif.invalid",
|
||||
"line": 68,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 73,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 11,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "ADA@EXAMPLE.TEST",
|
||||
"line": 16,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "ada@example.test",
|
||||
"line": 21,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 26,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 31,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 36,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 41,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "private@example.test",
|
||||
"line": 46,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 51,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "nom@fictif.invalid",
|
||||
"line": 56,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 61,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 66,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "ADA@EXAMPLE.TEST",
|
||||
"line": 71,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "ada@example.test",
|
||||
"line": 76,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 81,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 86,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 91,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 96,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "private@example.test",
|
||||
"line": 101,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 106,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "nom@fictif.invalid",
|
||||
"line": 111,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 116,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 121,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "ADA@EXAMPLE.TEST",
|
||||
"line": 126,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "ada@example.test",
|
||||
"line": 131,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 136,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 141,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 146,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 151,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "private@example.test",
|
||||
"line": 156,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 161,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "nom@fictif.invalid",
|
||||
"line": 166,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 171,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 23,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "ADA@EXAMPLE.TEST",
|
||||
"line": 28,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "ada@example.test",
|
||||
"line": 33,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 38,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 43,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 48,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 53,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "private@example.test",
|
||||
"line": 58,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 63,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "nom@fictif.invalid",
|
||||
"line": 68,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 73,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 78,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "ADA@EXAMPLE.TEST",
|
||||
"line": 83,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "ada@example.test",
|
||||
"line": 88,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 93,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 98,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 103,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 108,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "private@example.test",
|
||||
"line": 113,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 118,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "nom@fictif.invalid",
|
||||
"line": 123,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 128,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 133,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "ADA@EXAMPLE.TEST",
|
||||
"line": 138,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "ada@example.test",
|
||||
"line": 143,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 148,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 153,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 158,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 163,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "private@example.test",
|
||||
"line": 168,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 173,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "nom@fictif.invalid",
|
||||
"line": 178,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 183,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
}
|
||||
],
|
||||
"file_count": 644,
|
||||
"issue_register_path": "docs/IMPLEMENTATION_ISSUE_REGISTER_v1.6.csv",
|
||||
"issue_register_rows": 47,
|
||||
"json_files_parsed": 47,
|
||||
"release_gate_path": "docs/phase16/FINAL_RELEASE_GATE_MATRIX_v1.0.csv",
|
||||
"release_gate_status_counts": {
|
||||
"Approved": 3,
|
||||
"Blocked pending evidence": 29
|
||||
},
|
||||
"runtime_url_hits": [
|
||||
{
|
||||
"line": 2,
|
||||
"path": ".env.example",
|
||||
"url": "https://your-approved-domain.example"
|
||||
},
|
||||
{
|
||||
"line": 6,
|
||||
"path": "src/lib/localization/site-origin.ts",
|
||||
"url": "http://localhost:3000"
|
||||
},
|
||||
{
|
||||
"line": 2,
|
||||
"path": "src/contracts/phase9/design-tokens.json",
|
||||
"url": "https://design-tokens.github.io/community-group/format/"
|
||||
}
|
||||
],
|
||||
"secret_scan_files": 508,
|
||||
"suffix_counts": {
|
||||
".css": 48,
|
||||
".csv": 81,
|
||||
".duration": 8,
|
||||
".example": 1,
|
||||
".exit": 26,
|
||||
".js": 1,
|
||||
".json": 47,
|
||||
".log": 82,
|
||||
".md": 135,
|
||||
".mjs": 39,
|
||||
".png": 6,
|
||||
".py": 3,
|
||||
".svg": 2,
|
||||
".ts": 76,
|
||||
".tsx": 66,
|
||||
".txt": 10,
|
||||
".yaml": 2,
|
||||
".yml": 2,
|
||||
"<none>": 9
|
||||
},
|
||||
"total_bytes": 2655392,
|
||||
"unresolved_issue_counts": {
|
||||
"Critical": 1,
|
||||
"High": 21,
|
||||
"Low": 2,
|
||||
"Medium": 17
|
||||
}
|
||||
},
|
||||
"passed": true,
|
||||
"root": "/mnt/data/phase16_work/RentalDriveGo_Phase16_Repository_v1.0",
|
||||
"schema_version": "1.0"
|
||||
}
|
||||
@@ -0,0 +1,574 @@
|
||||
# Phase 16 Static Repository Audit
|
||||
|
||||
- Result: **PASS**
|
||||
- Files inspected: 644
|
||||
- JSON files parsed: 47
|
||||
- CSV files parsed: 81
|
||||
- Secret-scan files: 508
|
||||
- Findings: {}
|
||||
|
||||
## Findings
|
||||
|
||||
No Critical, High, Medium, Low, or informational findings were produced by this audit.
|
||||
|
||||
## Metrics
|
||||
|
||||
```json
|
||||
{
|
||||
"csv_files_parsed": 81,
|
||||
"direct_dependencies_exact": true,
|
||||
"direct_dependency_count": 25,
|
||||
"email_fixture_hits": [
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 21,
|
||||
"path": "tests/integration/demo-service.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "ADA@EXAMPLE.TEST",
|
||||
"line": 6,
|
||||
"path": "tests/unit/integrations/demo-schema.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "ada@example.test",
|
||||
"line": 22,
|
||||
"path": "tests/unit/integrations/demo-schema.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 20,
|
||||
"path": "tests/unit/integrations/analytics.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 9,
|
||||
"path": "tests/unit/integrations/redaction.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 36,
|
||||
"path": "tests/browser/integrations/demo-workflow.spec.ts"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 53,
|
||||
"path": "tests/browser/integrations/demo-workflow.spec.ts"
|
||||
},
|
||||
{
|
||||
"address": "private@example.test",
|
||||
"line": 66,
|
||||
"path": "tests/browser/integrations/demo-workflow.spec.ts"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 47,
|
||||
"path": "src/content/development/component-lab.ts"
|
||||
},
|
||||
{
|
||||
"address": "nom@fictif.invalid",
|
||||
"line": 158,
|
||||
"path": "src/content/development/component-lab.ts"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 281,
|
||||
"path": "src/content/development/component-lab.ts"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 11,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "ADA@EXAMPLE.TEST",
|
||||
"line": 16,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "ada@example.test",
|
||||
"line": 21,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 26,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 31,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 36,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 41,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "private@example.test",
|
||||
"line": 46,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 51,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "nom@fictif.invalid",
|
||||
"line": 56,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 61,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 23,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "ADA@EXAMPLE.TEST",
|
||||
"line": 28,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "ada@example.test",
|
||||
"line": 33,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 38,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 43,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 48,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 53,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "private@example.test",
|
||||
"line": 58,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 63,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "nom@fictif.invalid",
|
||||
"line": 68,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 73,
|
||||
"path": "docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 11,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "ADA@EXAMPLE.TEST",
|
||||
"line": 16,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "ada@example.test",
|
||||
"line": 21,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 26,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 31,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 36,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 41,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "private@example.test",
|
||||
"line": 46,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 51,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "nom@fictif.invalid",
|
||||
"line": 56,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 61,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 66,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "ADA@EXAMPLE.TEST",
|
||||
"line": 71,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "ada@example.test",
|
||||
"line": 76,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 81,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 86,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 91,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 96,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "private@example.test",
|
||||
"line": 101,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 106,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "nom@fictif.invalid",
|
||||
"line": 111,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 116,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 121,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "ADA@EXAMPLE.TEST",
|
||||
"line": 126,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "ada@example.test",
|
||||
"line": 131,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 136,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 141,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 146,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 151,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "private@example.test",
|
||||
"line": 156,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 161,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "nom@fictif.invalid",
|
||||
"line": 166,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 171,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.json"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 23,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "ADA@EXAMPLE.TEST",
|
||||
"line": 28,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "ada@example.test",
|
||||
"line": 33,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 38,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 43,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 48,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 53,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "private@example.test",
|
||||
"line": 58,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 63,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "nom@fictif.invalid",
|
||||
"line": 68,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 73,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 78,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "ADA@EXAMPLE.TEST",
|
||||
"line": 83,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "ada@example.test",
|
||||
"line": 88,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 93,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 98,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 103,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 108,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "private@example.test",
|
||||
"line": 113,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 118,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "nom@fictif.invalid",
|
||||
"line": 123,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 128,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 133,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "ADA@EXAMPLE.TEST",
|
||||
"line": 138,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "ada@example.test",
|
||||
"line": 143,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 148,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 153,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 158,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 163,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "private@example.test",
|
||||
"line": 168,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 173,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "nom@fictif.invalid",
|
||||
"line": 178,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 183,
|
||||
"path": "docs/quality/PHASE_16_FINAL_STATIC_AUDIT_RESULTS_v1.0.md"
|
||||
}
|
||||
],
|
||||
"file_count": 644,
|
||||
"issue_register_path": "docs/IMPLEMENTATION_ISSUE_REGISTER_v1.6.csv",
|
||||
"issue_register_rows": 47,
|
||||
"json_files_parsed": 47,
|
||||
"release_gate_path": "docs/phase16/FINAL_RELEASE_GATE_MATRIX_v1.0.csv",
|
||||
"release_gate_status_counts": {
|
||||
"Approved": 3,
|
||||
"Blocked pending evidence": 29
|
||||
},
|
||||
"runtime_url_hits": [
|
||||
{
|
||||
"line": 2,
|
||||
"path": ".env.example",
|
||||
"url": "https://your-approved-domain.example"
|
||||
},
|
||||
{
|
||||
"line": 6,
|
||||
"path": "src/lib/localization/site-origin.ts",
|
||||
"url": "http://localhost:3000"
|
||||
},
|
||||
{
|
||||
"line": 2,
|
||||
"path": "src/contracts/phase9/design-tokens.json",
|
||||
"url": "https://design-tokens.github.io/community-group/format/"
|
||||
}
|
||||
],
|
||||
"secret_scan_files": 508,
|
||||
"suffix_counts": {
|
||||
".css": 48,
|
||||
".csv": 81,
|
||||
".duration": 8,
|
||||
".example": 1,
|
||||
".exit": 26,
|
||||
".js": 1,
|
||||
".json": 47,
|
||||
".log": 82,
|
||||
".md": 135,
|
||||
".mjs": 39,
|
||||
".png": 6,
|
||||
".py": 3,
|
||||
".svg": 2,
|
||||
".ts": 76,
|
||||
".tsx": 66,
|
||||
".txt": 10,
|
||||
".yaml": 2,
|
||||
".yml": 2,
|
||||
"<none>": 9
|
||||
},
|
||||
"total_bytes": 2655392,
|
||||
"unresolved_issue_counts": {
|
||||
"Critical": 1,
|
||||
"High": 21,
|
||||
"Low": 2,
|
||||
"Medium": 17
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,182 @@
|
||||
[
|
||||
{
|
||||
"name": "01-phase15-manifest",
|
||||
"command": "node scripts/validate-phase15-manifest.mjs",
|
||||
"start_epoch": 1782431606.8168576,
|
||||
"end_epoch": 1782431607.0603523,
|
||||
"duration_seconds": 0.243,
|
||||
"exit_code": 0,
|
||||
"result": "Passed",
|
||||
"log": "docs/quality/phase16-command-logs/01-phase15-manifest.log"
|
||||
},
|
||||
{
|
||||
"name": "02-validations",
|
||||
"command": "node scripts/run-validations.mjs",
|
||||
"start_epoch": 1782431607.0615966,
|
||||
"end_epoch": 1782431608.6426542,
|
||||
"duration_seconds": 1.581,
|
||||
"exit_code": 0,
|
||||
"result": "Passed",
|
||||
"log": "docs/quality/phase16-command-logs/02-validations.log"
|
||||
},
|
||||
{
|
||||
"name": "03-phase15-readiness",
|
||||
"command": "node scripts/validate-phase15-readiness.mjs",
|
||||
"start_epoch": 1782431608.6430712,
|
||||
"end_epoch": 1782431608.7261708,
|
||||
"duration_seconds": 0.083,
|
||||
"exit_code": 0,
|
||||
"result": "Passed",
|
||||
"log": "docs/quality/phase16-command-logs/03-phase15-readiness.log"
|
||||
},
|
||||
{
|
||||
"name": "04-static-audit",
|
||||
"command": "python3 scripts/phase15-static-audit.py --json-output docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.json --markdown-output docs/quality/PHASE_16_STATIC_AUDIT_RESULTS_v1.0.md",
|
||||
"start_epoch": 1782431608.7265477,
|
||||
"end_epoch": 1782431610.251834,
|
||||
"duration_seconds": 1.525,
|
||||
"exit_code": 0,
|
||||
"result": "Passed",
|
||||
"log": "docs/quality/phase16-command-logs/04-static-audit.log"
|
||||
},
|
||||
{
|
||||
"name": "05-phase14-integrations",
|
||||
"command": "node scripts/validate-phase14-integrations.mjs",
|
||||
"start_epoch": 1782431610.2522087,
|
||||
"end_epoch": 1782431610.330689,
|
||||
"duration_seconds": 0.078,
|
||||
"exit_code": 0,
|
||||
"result": "Passed",
|
||||
"log": "docs/quality/phase16-command-logs/05-phase14-integrations.log"
|
||||
},
|
||||
{
|
||||
"name": "06-phase14-environment",
|
||||
"command": "node scripts/validate-phase14-environment.mjs",
|
||||
"start_epoch": 1782431610.330972,
|
||||
"end_epoch": 1782431610.400568,
|
||||
"duration_seconds": 0.07,
|
||||
"exit_code": 0,
|
||||
"result": "Passed",
|
||||
"log": "docs/quality/phase16-command-logs/06-phase14-environment.log"
|
||||
},
|
||||
{
|
||||
"name": "07-phase14-security",
|
||||
"command": "node scripts/validate-phase14-security.mjs",
|
||||
"start_epoch": 1782431610.4008532,
|
||||
"end_epoch": 1782431610.4712098,
|
||||
"duration_seconds": 0.07,
|
||||
"exit_code": 0,
|
||||
"result": "Passed",
|
||||
"log": "docs/quality/phase16-command-logs/07-phase14-security.log"
|
||||
},
|
||||
{
|
||||
"name": "08-phase14-privacy",
|
||||
"command": "node scripts/validate-phase14-privacy.mjs",
|
||||
"start_epoch": 1782431610.4714422,
|
||||
"end_epoch": 1782431610.5439904,
|
||||
"duration_seconds": 0.073,
|
||||
"exit_code": 0,
|
||||
"result": "Passed",
|
||||
"log": "docs/quality/phase16-command-logs/08-phase14-privacy.log"
|
||||
},
|
||||
{
|
||||
"name": "09-syntax-check",
|
||||
"command": "find scripts -name '*.mjs' -print0 | xargs -0 -n1 node --check",
|
||||
"start_epoch": 1782431610.5443811,
|
||||
"end_epoch": 1782431612.3465776,
|
||||
"duration_seconds": 1.802,
|
||||
"exit_code": 0,
|
||||
"result": "Passed",
|
||||
"log": "docs/quality/phase16-command-logs/09-syntax-check.log"
|
||||
},
|
||||
{
|
||||
"name": "13-contract-validation",
|
||||
"command": "node scripts/validate-phase9-contract.mjs",
|
||||
"start_epoch": 1782431674.6306887,
|
||||
"end_epoch": 1782431674.8194394,
|
||||
"duration_seconds": 0.189,
|
||||
"exit_code": 0,
|
||||
"result": "Passed",
|
||||
"log": "docs/quality/phase16-command-logs/13-contract-validation.log"
|
||||
},
|
||||
{
|
||||
"name": "14-token-validation",
|
||||
"command": "node scripts/validate-tokens.mjs",
|
||||
"start_epoch": 1782431674.8199482,
|
||||
"end_epoch": 1782431674.932933,
|
||||
"duration_seconds": 0.113,
|
||||
"exit_code": 0,
|
||||
"result": "Passed",
|
||||
"log": "docs/quality/phase16-command-logs/14-token-validation.log"
|
||||
},
|
||||
{
|
||||
"name": "15-locale-validation",
|
||||
"command": "node scripts/validate-locales.mjs",
|
||||
"start_epoch": 1782431674.93337,
|
||||
"end_epoch": 1782431675.0189438,
|
||||
"duration_seconds": 0.086,
|
||||
"exit_code": 0,
|
||||
"result": "Passed",
|
||||
"log": "docs/quality/phase16-command-logs/15-locale-validation.log"
|
||||
},
|
||||
{
|
||||
"name": "16-route-validation",
|
||||
"command": "node scripts/validate-routes.mjs",
|
||||
"start_epoch": 1782431675.019326,
|
||||
"end_epoch": 1782431675.0961354,
|
||||
"duration_seconds": 0.077,
|
||||
"exit_code": 0,
|
||||
"result": "Passed",
|
||||
"log": "docs/quality/phase16-command-logs/16-route-validation.log"
|
||||
},
|
||||
{
|
||||
"name": "17-css-rtl-validation",
|
||||
"command": "node scripts/validate-css-logical.mjs",
|
||||
"start_epoch": 1782431675.096504,
|
||||
"end_epoch": 1782431675.2137945,
|
||||
"duration_seconds": 0.117,
|
||||
"exit_code": 0,
|
||||
"result": "Passed",
|
||||
"log": "docs/quality/phase16-command-logs/17-css-rtl-validation.log"
|
||||
},
|
||||
{
|
||||
"name": "18-content-claims-validation",
|
||||
"command": "node scripts/validate-prohibited-content.mjs",
|
||||
"start_epoch": 1782431675.2142003,
|
||||
"end_epoch": 1782431675.3477397,
|
||||
"duration_seconds": 0.134,
|
||||
"exit_code": 0,
|
||||
"result": "Passed",
|
||||
"log": "docs/quality/phase16-command-logs/18-content-claims-validation.log"
|
||||
},
|
||||
{
|
||||
"name": "19-metadata-validation",
|
||||
"command": "node scripts/validate-metadata.mjs",
|
||||
"start_epoch": 1782431675.3480766,
|
||||
"end_epoch": 1782431675.424533,
|
||||
"duration_seconds": 0.076,
|
||||
"exit_code": 0,
|
||||
"result": "Passed",
|
||||
"log": "docs/quality/phase16-command-logs/19-metadata-validation.log"
|
||||
},
|
||||
{
|
||||
"name": "20-component-validation",
|
||||
"command": "node scripts/validate-phase12-components.mjs",
|
||||
"start_epoch": 1782431675.4248092,
|
||||
"end_epoch": 1782431675.5411427,
|
||||
"duration_seconds": 0.116,
|
||||
"exit_code": 0,
|
||||
"result": "Passed",
|
||||
"log": "docs/quality/phase16-command-logs/20-component-validation.log"
|
||||
},
|
||||
{
|
||||
"name": "21-homepage-validation",
|
||||
"command": "node scripts/validate-phase13-homepage.mjs",
|
||||
"start_epoch": 1782431675.5414987,
|
||||
"end_epoch": 1782431675.622236,
|
||||
"duration_seconds": 0.081,
|
||||
"exit_code": 0,
|
||||
"result": "Passed",
|
||||
"log": "docs/quality/phase16-command-logs/21-homepage-validation.log"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,126 @@
|
||||
{
|
||||
"audit": "Phase 15 dependency-free static repository audit",
|
||||
"finding_counts": {},
|
||||
"findings": [],
|
||||
"metrics": {
|
||||
"csv_files_parsed": 51,
|
||||
"direct_dependencies_exact": true,
|
||||
"direct_dependency_count": 25,
|
||||
"email_fixture_hits": [
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 21,
|
||||
"path": "tests/integration/demo-service.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "ADA@EXAMPLE.TEST",
|
||||
"line": 6,
|
||||
"path": "tests/unit/integrations/demo-schema.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "ada@example.test",
|
||||
"line": 22,
|
||||
"path": "tests/unit/integrations/demo-schema.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 20,
|
||||
"path": "tests/unit/integrations/analytics.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 9,
|
||||
"path": "tests/unit/integrations/redaction.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 36,
|
||||
"path": "tests/browser/integrations/demo-workflow.spec.ts"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 53,
|
||||
"path": "tests/browser/integrations/demo-workflow.spec.ts"
|
||||
},
|
||||
{
|
||||
"address": "private@example.test",
|
||||
"line": 66,
|
||||
"path": "tests/browser/integrations/demo-workflow.spec.ts"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 47,
|
||||
"path": "src/content/development/component-lab.ts"
|
||||
},
|
||||
{
|
||||
"address": "nom@fictif.invalid",
|
||||
"line": 158,
|
||||
"path": "src/content/development/component-lab.ts"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 281,
|
||||
"path": "src/content/development/component-lab.ts"
|
||||
}
|
||||
],
|
||||
"file_count": 549,
|
||||
"issue_register_path": "docs/IMPLEMENTATION_ISSUE_REGISTER_v1.5.csv",
|
||||
"issue_register_rows": 47,
|
||||
"json_files_parsed": 44,
|
||||
"release_gate_path": "docs/phase15/RELEASE_GATE_MATRIX_v1.0.csv",
|
||||
"release_gate_status_counts": {
|
||||
"Blocked": 16,
|
||||
"Open": 1,
|
||||
"Passed": 3
|
||||
},
|
||||
"runtime_url_hits": [
|
||||
{
|
||||
"line": 2,
|
||||
"path": ".env.example",
|
||||
"url": "https://your-approved-domain.example"
|
||||
},
|
||||
{
|
||||
"line": 6,
|
||||
"path": "src/lib/localization/site-origin.ts",
|
||||
"url": "http://localhost:3000"
|
||||
},
|
||||
{
|
||||
"line": 2,
|
||||
"path": "src/contracts/phase9/design-tokens.json",
|
||||
"url": "https://design-tokens.github.io/community-group/format/"
|
||||
}
|
||||
],
|
||||
"secret_scan_files": 435,
|
||||
"suffix_counts": {
|
||||
".css": 48,
|
||||
".csv": 51,
|
||||
".duration": 8,
|
||||
".example": 1,
|
||||
".exit": 24,
|
||||
".js": 1,
|
||||
".json": 44,
|
||||
".log": 63,
|
||||
".md": 98,
|
||||
".mjs": 36,
|
||||
".png": 6,
|
||||
".py": 2,
|
||||
".svg": 2,
|
||||
".ts": 76,
|
||||
".tsx": 66,
|
||||
".txt": 10,
|
||||
".yaml": 2,
|
||||
".yml": 2,
|
||||
"<none>": 9
|
||||
},
|
||||
"total_bytes": 2491857,
|
||||
"unresolved_issue_counts": {
|
||||
"Critical": 1,
|
||||
"High": 21,
|
||||
"Low": 2,
|
||||
"Medium": 17
|
||||
}
|
||||
},
|
||||
"passed": true,
|
||||
"root": "/mnt/data/phase16_work/RentalDriveGo_Phase15_Repository_v1.0",
|
||||
"schema_version": "1.0"
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
# Phase 15 Static Repository Audit
|
||||
|
||||
- Result: **PASS**
|
||||
- Files inspected: 549
|
||||
- JSON files parsed: 44
|
||||
- CSV files parsed: 51
|
||||
- Secret-scan files: 435
|
||||
- Findings: {}
|
||||
|
||||
## Findings
|
||||
|
||||
No Critical, High, Medium, Low, or informational findings were produced by this audit.
|
||||
|
||||
## Metrics
|
||||
|
||||
```json
|
||||
{
|
||||
"csv_files_parsed": 51,
|
||||
"direct_dependencies_exact": true,
|
||||
"direct_dependency_count": 25,
|
||||
"email_fixture_hits": [
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 21,
|
||||
"path": "tests/integration/demo-service.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "ADA@EXAMPLE.TEST",
|
||||
"line": 6,
|
||||
"path": "tests/unit/integrations/demo-schema.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "ada@example.test",
|
||||
"line": 22,
|
||||
"path": "tests/unit/integrations/demo-schema.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 20,
|
||||
"path": "tests/unit/integrations/analytics.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "person@example.test",
|
||||
"line": 9,
|
||||
"path": "tests/unit/integrations/redaction.test.ts"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 36,
|
||||
"path": "tests/browser/integrations/demo-workflow.spec.ts"
|
||||
},
|
||||
{
|
||||
"address": "avery@example.test",
|
||||
"line": 53,
|
||||
"path": "tests/browser/integrations/demo-workflow.spec.ts"
|
||||
},
|
||||
{
|
||||
"address": "private@example.test",
|
||||
"line": 66,
|
||||
"path": "tests/browser/integrations/demo-workflow.spec.ts"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 47,
|
||||
"path": "src/content/development/component-lab.ts"
|
||||
},
|
||||
{
|
||||
"address": "nom@fictif.invalid",
|
||||
"line": 158,
|
||||
"path": "src/content/development/component-lab.ts"
|
||||
},
|
||||
{
|
||||
"address": "name@fictional.invalid",
|
||||
"line": 281,
|
||||
"path": "src/content/development/component-lab.ts"
|
||||
}
|
||||
],
|
||||
"file_count": 549,
|
||||
"issue_register_path": "docs/IMPLEMENTATION_ISSUE_REGISTER_v1.5.csv",
|
||||
"issue_register_rows": 47,
|
||||
"json_files_parsed": 44,
|
||||
"release_gate_path": "docs/phase15/RELEASE_GATE_MATRIX_v1.0.csv",
|
||||
"release_gate_status_counts": {
|
||||
"Blocked": 16,
|
||||
"Open": 1,
|
||||
"Passed": 3
|
||||
},
|
||||
"runtime_url_hits": [
|
||||
{
|
||||
"line": 2,
|
||||
"path": ".env.example",
|
||||
"url": "https://your-approved-domain.example"
|
||||
},
|
||||
{
|
||||
"line": 6,
|
||||
"path": "src/lib/localization/site-origin.ts",
|
||||
"url": "http://localhost:3000"
|
||||
},
|
||||
{
|
||||
"line": 2,
|
||||
"path": "src/contracts/phase9/design-tokens.json",
|
||||
"url": "https://design-tokens.github.io/community-group/format/"
|
||||
}
|
||||
],
|
||||
"secret_scan_files": 435,
|
||||
"suffix_counts": {
|
||||
".css": 48,
|
||||
".csv": 51,
|
||||
".duration": 8,
|
||||
".example": 1,
|
||||
".exit": 24,
|
||||
".js": 1,
|
||||
".json": 44,
|
||||
".log": 63,
|
||||
".md": 98,
|
||||
".mjs": 36,
|
||||
".png": 6,
|
||||
".py": 2,
|
||||
".svg": 2,
|
||||
".ts": 76,
|
||||
".tsx": 66,
|
||||
".txt": 10,
|
||||
".yaml": 2,
|
||||
".yml": 2,
|
||||
"<none>": 9
|
||||
},
|
||||
"total_bytes": 2491857,
|
||||
"unresolved_issue_counts": {
|
||||
"Critical": 1,
|
||||
"High": 21,
|
||||
"Low": 2,
|
||||
"Medium": 17
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1 @@
|
||||
4
|
||||
@@ -0,0 +1 @@
|
||||
1
|
||||
@@ -0,0 +1 @@
|
||||
3
|
||||
@@ -0,0 +1 @@
|
||||
0
|
||||
@@ -0,0 +1 @@
|
||||
0
|
||||
@@ -0,0 +1 @@
|
||||
11
|
||||
@@ -0,0 +1 @@
|
||||
1
|
||||
@@ -0,0 +1 @@
|
||||
10
|
||||
@@ -0,0 +1 @@
|
||||
0
|
||||
@@ -0,0 +1 @@
|
||||
0
|
||||
@@ -0,0 +1 @@
|
||||
1
|
||||
@@ -0,0 +1 @@
|
||||
16
|
||||
@@ -0,0 +1 @@
|
||||
0
|
||||
@@ -0,0 +1 @@
|
||||
2
|
||||
@@ -0,0 +1 @@
|
||||
0
|
||||
@@ -0,0 +1 @@
|
||||
8
|
||||
@@ -0,0 +1 @@
|
||||
2
|
||||
@@ -0,0 +1 @@
|
||||
8
|
||||
@@ -0,0 +1 @@
|
||||
0
|
||||
@@ -0,0 +1 @@
|
||||
{"command":"node scripts/run-validations.mjs","exit_code":0,"wall_seconds":1,"log":"docs/quality/phase15-command-logs/01-validate.log"}
|
||||
@@ -0,0 +1 @@
|
||||
0
|
||||
@@ -0,0 +1 @@
|
||||
0
|
||||
@@ -0,0 +1 @@
|
||||
0
|
||||
@@ -0,0 +1 @@
|
||||
0
|
||||
@@ -0,0 +1 @@
|
||||
1
|
||||
@@ -0,0 +1 @@
|
||||
0
|
||||
Reference in New Issue
Block a user