mirai-graph 1.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +376 -0
- package/CITATION.cff +20 -0
- package/LICENSE +21 -0
- package/LICENSE-DOCS +26 -0
- package/README.md +270 -0
- package/ROADMAP.md +225 -0
- package/benchmarks/protocols/measure-convert-optimize.md +131 -0
- package/benchmarks/synthetic-context-reduction-v0/README.md +70 -0
- package/benchmarks/synthetic-context-reduction-v0/RESULT.md +52 -0
- package/benchmarks/synthetic-context-reduction-v0/expected/context-pack-compact.md +31 -0
- package/benchmarks/synthetic-context-reduction-v0/gates/results.json +12 -0
- package/benchmarks/synthetic-context-reduction-v0/graph/objects.json +114 -0
- package/benchmarks/synthetic-context-reduction-v0/graph/relations.json +74 -0
- package/benchmarks/synthetic-context-reduction-v0/metrics/example-metrics.json +22 -0
- package/benchmarks/synthetic-context-reduction-v0/mirai-graph-package.json +14 -0
- package/benchmarks/synthetic-context-reduction-v0/results/baseline-comparison-result.json +42 -0
- package/benchmarks/synthetic-context-reduction-v0/results/context-pack.json +181 -0
- package/benchmarks/synthetic-context-reduction-v0/results/context-reduction-result.json +8 -0
- package/benchmarks/synthetic-context-reduction-v0/results/profile-conformance-result.json +28 -0
- package/benchmarks/synthetic-context-reduction-v0/results/readiness-score.json +24 -0
- package/benchmarks/synthetic-context-reduction-v0/reviews/semantic-completeness-review.json +78 -0
- package/benchmarks/synthetic-context-reduction-v0/scripts/calculate-context-reduction.js +42 -0
- package/benchmarks/synthetic-context-reduction-v0/source-corpus/audit-events.md +8 -0
- package/benchmarks/synthetic-context-reduction-v0/source-corpus/content-workflow.md +8 -0
- package/benchmarks/synthetic-context-reduction-v0/source-corpus/identity-access.md +8 -0
- package/benchmarks/synthetic-context-reduction-v0/source-corpus/notification-delivery.md +8 -0
- package/benchmarks/synthetic-context-reduction-v0/tasks/tasks.json +31 -0
- package/docs/adoption/adopter-kit.md +179 -0
- package/docs/adoption/ai-employee-graph.md +151 -0
- package/docs/adoption/character-layer.md +196 -0
- package/docs/adoption/choose-profile.md +98 -0
- package/docs/adoption/cli.md +78 -0
- package/docs/adoption/developer-integration-guide.md +93 -0
- package/docs/adoption/end-to-end-control-loop.md +168 -0
- package/docs/adoption/getting-started.md +169 -0
- package/docs/adoption/mirai-graph-transition.md +64 -0
- package/docs/adoption/profile-conformance-fixtures.md +112 -0
- package/docs/adoption/seed-to-validated-package.md +121 -0
- package/docs/concept.md +109 -0
- package/docs/repository-purpose.md +421 -0
- package/docs/research/ai-work-field-instrumentation-bridge.md +126 -0
- package/docs/research/baseline-comparison-protocol.md +79 -0
- package/docs/research/evidence-package-v0.1.md +99 -0
- package/docs/research/evidence-package-v0.2.md +150 -0
- package/docs/research/evidence-package-v0.3.md +226 -0
- package/docs/research/independent-implementation-pilot-plan.md +74 -0
- package/docs/research/limitations-and-threats.md +40 -0
- package/docs/research/practice-science-program.md +232 -0
- package/docs/research/scientific-evidence-package.md +154 -0
- package/docs/research/semantic-completeness-review-protocol.md +70 -0
- package/docs/terminology.md +119 -0
- package/docs/transfer/ai-employee-profile-proposal.md +119 -0
- package/docs/transfer/federation-routing-control-loop-2026-05-31.md +28 -0
- package/docs/transfer/graph-capability-map-2026-05-29.md +126 -0
- package/docs/transfer/graph-skill-to-mirai-graph.md +128 -0
- package/docs/transfer/project-management-standard-harvest-2026-06-02.md +322 -0
- package/docs/transfer/skill-graph-standard-harvest-2026-05-31.md +113 -0
- package/docs/transfer/standard-gap-report-2026-05-28.md +208 -0
- package/examples/ai-employee-minimal/README.md +53 -0
- package/examples/ai-employee-minimal/gates/results.json +35 -0
- package/examples/ai-employee-minimal/graph/objects.json +187 -0
- package/examples/ai-employee-minimal/graph/relations.json +167 -0
- package/examples/ai-employee-minimal/mirai-graph-package.json +14 -0
- package/examples/ai-employee-minimal/results/profile-conformance-result.json +28 -0
- package/examples/character-layer-integration-minimal/README.md +25 -0
- package/examples/character-layer-integration-minimal/results/character-layer-integration.json +53 -0
- package/examples/character-layer-minimal/README.md +29 -0
- package/examples/character-layer-minimal/gates/results.json +57 -0
- package/examples/character-layer-minimal/graph/objects.json +165 -0
- package/examples/character-layer-minimal/graph/relations.json +178 -0
- package/examples/character-layer-minimal/mirai-graph-package.json +14 -0
- package/examples/character-layer-readiness-1-0/README.md +27 -0
- package/examples/character-layer-readiness-1-0/results/character-layer-readiness.json +90 -0
- package/examples/federation-routing-smoke/README.md +19 -0
- package/examples/federation-routing-smoke/federation-health-dashboard.json +42 -0
- package/examples/federation-routing-smoke/route-explanation.json +32 -0
- package/examples/federation-routing-smoke/route-regression-result.json +35 -0
- package/examples/federation-routing-smoke/routes/production-deploy-execution-evidence.json +17 -0
- package/examples/federation-routing-smoke/routes/production-deploy-route-result.json +12 -0
- package/examples/federation-routing-smoke/routes/production-deploy-runtime-preflight.json +8 -0
- package/examples/federation-routing-smoke/routes/production-deploy-stderr.txt +1 -0
- package/examples/federation-routing-smoke/routes/production-deploy-stdout.txt +1 -0
- package/examples/federation-routing-smoke/routes/search-page-execution-evidence.json +17 -0
- package/examples/federation-routing-smoke/routes/search-page-route-result.json +12 -0
- package/examples/federation-routing-smoke/routes/search-page-stderr.txt +1 -0
- package/examples/federation-routing-smoke/routes/search-page-stdout.txt +1 -0
- package/examples/federation-routing-smoke/routing-fixture-run.json +66 -0
- package/examples/federation-routing-smoke/routing-fixtures.json +44 -0
- package/examples/graph-dna-alignment-minimal/README.md +16 -0
- package/examples/graph-dna-alignment-minimal/graph/objects.json +38 -0
- package/examples/graph-dna-alignment-minimal/graph/relations.json +20 -0
- package/examples/graph-dna-alignment-minimal/mirai-graph-package.json +14 -0
- package/examples/graph-dna-alignment-minimal/results/graph-dna-alignment.json +32 -0
- package/examples/graph-seed-minimal/README.md +9 -0
- package/examples/graph-seed-minimal/graph-embryo.json +63 -0
- package/examples/graph-seed-minimal/graph-seed.json +60 -0
- package/examples/implementation-control-cycles/README.md +47 -0
- package/examples/implementation-control-cycles/gates/results.json +22 -0
- package/examples/implementation-control-cycles/graph/objects.json +119 -0
- package/examples/implementation-control-cycles/graph/relations.json +200 -0
- package/examples/implementation-control-cycles/mirai-graph-package.json +14 -0
- package/examples/implementation-control-cycles/results/implementation-control-cycles.json +456 -0
- package/examples/implementation-control-minimal/README.md +39 -0
- package/examples/implementation-control-minimal/gates/results.json +42 -0
- package/examples/implementation-control-minimal/graph/objects.json +128 -0
- package/examples/implementation-control-minimal/graph/relations.json +128 -0
- package/examples/implementation-control-minimal/mirai-graph-package.json +14 -0
- package/examples/implementation-control-minimal/results/implementation-control-loop.json +21 -0
- package/examples/instrumentation-layer-minimal/README.md +32 -0
- package/examples/instrumentation-layer-minimal/gates/results.json +11 -0
- package/examples/instrumentation-layer-minimal/graph/objects.json +74 -0
- package/examples/instrumentation-layer-minimal/graph/relations.json +56 -0
- package/examples/instrumentation-layer-minimal/invalid-cockpit-missing-gates.json +40 -0
- package/examples/instrumentation-layer-minimal/invalid-feedback-accepted-with-blocking.json +38 -0
- package/examples/instrumentation-layer-minimal/invalid-feedback-process-improvement-without-kaizen.json +38 -0
- package/examples/instrumentation-layer-minimal/invalid-traceability-missing-evidence.json +43 -0
- package/examples/instrumentation-layer-minimal/mirai-graph-package.json +14 -0
- package/examples/instrumentation-layer-minimal/results/development-cockpit.json +68 -0
- package/examples/instrumentation-layer-minimal/results/feature-implementation-traceability.json +56 -0
- package/examples/instrumentation-layer-minimal/results/multi-source-quality-feedback.json +72 -0
- package/examples/invalid-character-layer-context-authorization/graph/objects.json +22 -0
- package/examples/invalid-character-layer-context-authorization/graph/relations.json +1 -0
- package/examples/invalid-character-layer-context-authorization/mirai-graph-package.json +14 -0
- package/examples/invalid-character-layer-correction-loop-no-review/graph/objects.json +22 -0
- package/examples/invalid-character-layer-correction-loop-no-review/graph/relations.json +1 -0
- package/examples/invalid-character-layer-correction-loop-no-review/mirai-graph-package.json +14 -0
- package/examples/invalid-character-layer-feedback-auto-update/graph/objects.json +22 -0
- package/examples/invalid-character-layer-feedback-auto-update/graph/relations.json +1 -0
- package/examples/invalid-character-layer-feedback-auto-update/mirai-graph-package.json +14 -0
- package/examples/invalid-character-layer-object-kind/graph/objects.json +22 -0
- package/examples/invalid-character-layer-object-kind/graph/relations.json +1 -0
- package/examples/invalid-character-layer-object-kind/mirai-graph-package.json +14 -0
- package/examples/invalid-character-layer-relation-direction/graph/objects.json +33 -0
- package/examples/invalid-character-layer-relation-direction/graph/relations.json +13 -0
- package/examples/invalid-character-layer-relation-direction/mirai-graph-package.json +14 -0
- package/examples/invalid-character-layer-relation-type/graph/objects.json +33 -0
- package/examples/invalid-character-layer-relation-type/graph/relations.json +13 -0
- package/examples/invalid-character-layer-relation-type/mirai-graph-package.json +14 -0
- package/examples/invalid-character-layer-role-permission/graph/objects.json +22 -0
- package/examples/invalid-character-layer-role-permission/graph/relations.json +1 -0
- package/examples/invalid-character-layer-role-permission/mirai-graph-package.json +14 -0
- package/examples/invalid-context-pack-missing-explanation/context-pack.json +25 -0
- package/examples/invalid-missing-relation-target/graph/objects.json +11 -0
- package/examples/invalid-missing-relation-target/graph/relations.json +11 -0
- package/examples/invalid-missing-relation-target/mirai-graph-package.json +11 -0
- package/examples/invalid-profile-object-kind/graph/objects.json +20 -0
- package/examples/invalid-profile-object-kind/graph/relations.json +1 -0
- package/examples/invalid-profile-object-kind/mirai-graph-package.json +11 -0
- package/examples/invalid-profile-relation-type/graph/objects.json +29 -0
- package/examples/invalid-profile-relation-type/graph/relations.json +11 -0
- package/examples/invalid-profile-relation-type/mirai-graph-package.json +11 -0
- package/examples/invalid-relation-id-mismatch/graph/objects.json +29 -0
- package/examples/invalid-relation-id-mismatch/graph/relations.json +11 -0
- package/examples/invalid-relation-id-mismatch/mirai-graph-package.json +11 -0
- package/examples/invalid-seed-unsafe-write/graph-seed.json +27 -0
- package/examples/launch-record-minimal/README.md +29 -0
- package/examples/launch-record-minimal/gates/results.json +12 -0
- package/examples/launch-record-minimal/graph/objects.json +47 -0
- package/examples/launch-record-minimal/graph/relations.json +38 -0
- package/examples/launch-record-minimal/mirai-graph-package.json +11 -0
- package/examples/launch-record-minimal/results/launch-record.json +51 -0
- package/examples/managed-project-control-loop/README.md +43 -0
- package/examples/managed-project-control-loop/gates/results.json +22 -0
- package/examples/managed-project-control-loop/graph/objects.json +119 -0
- package/examples/managed-project-control-loop/graph/relations.json +110 -0
- package/examples/managed-project-control-loop/mirai-graph-package.json +14 -0
- package/examples/managed-project-control-loop/results/managed-loop-result.json +21 -0
- package/examples/minimal-graph/README.md +15 -0
- package/examples/minimal-graph/gates/results.json +12 -0
- package/examples/minimal-graph/graph/objects.json +24 -0
- package/examples/minimal-graph/graph/relations.json +11 -0
- package/examples/minimal-graph/mirai-graph-package.json +14 -0
- package/examples/minimal-graph/results/profile-conformance-result.json +26 -0
- package/examples/model-portability-minimal/README.md +15 -0
- package/examples/model-portability-minimal/results/model-portability-evidence.json +55 -0
- package/examples/organization-governance-minimal/README.md +29 -0
- package/examples/organization-governance-minimal/gates/results.json +21 -0
- package/examples/organization-governance-minimal/graph/objects.json +147 -0
- package/examples/organization-governance-minimal/graph/relations.json +147 -0
- package/examples/organization-governance-minimal/mirai-graph-package.json +15 -0
- package/examples/organization-governance-minimal/results/profile-conformance-result.json +31 -0
- package/examples/process-control-contract-minimal/README.md +19 -0
- package/examples/process-control-contract-minimal/graph/objects.json +38 -0
- package/examples/process-control-contract-minimal/graph/relations.json +29 -0
- package/examples/process-control-contract-minimal/mirai-graph-package.json +11 -0
- package/examples/process-control-contract-minimal/results/process-control-contract.json +58 -0
- package/examples/process-transition-minimal/README.md +25 -0
- package/examples/process-transition-minimal/invalid-missing-launch-record.json +14 -0
- package/examples/process-transition-minimal/invalid-ready-to-written.json +14 -0
- package/examples/process-transition-minimal/invalid-release-missing-evidence.json +14 -0
- package/examples/process-transition-minimal/invalid-sync-to-update.json +14 -0
- package/examples/process-transition-minimal/invalid-terminal-missing-kaizen.json +14 -0
- package/examples/process-transition-minimal/invalid-tests-to-approved.json +14 -0
- package/examples/process-transition-minimal/results/transition-explanation-invalid-ready-to-written.json +35 -0
- package/examples/process-transition-minimal/results/transition-explanation-valid.json +34 -0
- package/examples/process-transition-minimal/state-machine.json +79 -0
- package/examples/process-transition-minimal/transition-request-skip-kaizen.json +14 -0
- package/examples/process-transition-minimal/transition-request.json +14 -0
- package/examples/risk-and-coordination-minimal/README.md +16 -0
- package/examples/risk-and-coordination-minimal/graph/objects.json +47 -0
- package/examples/risk-and-coordination-minimal/graph/relations.json +29 -0
- package/examples/risk-and-coordination-minimal/mirai-graph-package.json +14 -0
- package/examples/risk-and-coordination-minimal/results/multi-agent-coordination.json +25 -0
- package/examples/risk-and-coordination-minimal/results/risk-control-matrix.json +34 -0
- package/examples/skill-runtime-minimal/README.md +29 -0
- package/examples/skill-runtime-minimal/gates/results.json +35 -0
- package/examples/skill-runtime-minimal/graph/objects.json +209 -0
- package/examples/skill-runtime-minimal/graph/relations.json +178 -0
- package/examples/skill-runtime-minimal/mirai-graph-package.json +14 -0
- package/examples/skill-runtime-minimal/results/profile-conformance-result.json +27 -0
- package/examples/source-boundary-minimal/README.md +16 -0
- package/examples/source-boundary-minimal/graph/objects.json +38 -0
- package/examples/source-boundary-minimal/graph/relations.json +20 -0
- package/examples/source-boundary-minimal/mirai-graph-package.json +14 -0
- package/examples/source-boundary-minimal/results/source-boundary-contract.json +37 -0
- package/examples/technology-quality-feedback-minimal/README.md +33 -0
- package/examples/technology-quality-feedback-minimal/graph/objects.json +56 -0
- package/examples/technology-quality-feedback-minimal/graph/relations.json +47 -0
- package/examples/technology-quality-feedback-minimal/invalid-accepted-with-blocking.json +33 -0
- package/examples/technology-quality-feedback-minimal/invalid-evidence-as-authorization.json +22 -0
- package/examples/technology-quality-feedback-minimal/invalid-missing-required-step.json +22 -0
- package/examples/technology-quality-feedback-minimal/invalid-process-improvement-without-kaizen.json +33 -0
- package/examples/technology-quality-feedback-minimal/invalid-spec-gap-without-route.json +33 -0
- package/examples/technology-quality-feedback-minimal/invalid-unclassified-finding.json +33 -0
- package/examples/technology-quality-feedback-minimal/mirai-graph-package.json +11 -0
- package/examples/technology-quality-feedback-minimal/results/technology-quality-feedback.json +80 -0
- package/examples/work-recovery-minimal/README.md +15 -0
- package/examples/work-recovery-minimal/graph/objects.json +47 -0
- package/examples/work-recovery-minimal/graph/relations.json +20 -0
- package/examples/work-recovery-minimal/mirai-graph-package.json +14 -0
- package/examples/work-recovery-minimal/results/recovery-resume-record.json +17 -0
- package/examples/work-recovery-minimal/results/work-state-machine.json +21 -0
- package/package.json +104 -0
- package/packages/cli/adopter-workflow.js +227 -0
- package/packages/cli/context-pack.js +267 -0
- package/packages/cli/instrumentation-report.js +97 -0
- package/packages/cli/mirai-graph.js +121 -0
- package/packages/cli/mirai_graph.js +3 -0
- package/packages/cli/playground-demo.js +114 -0
- package/packages/cli/readiness-score.js +162 -0
- package/packages/cli/release-state.js +329 -0
- package/packages/cli/seed-preview.js +78 -0
- package/packages/cli/validate-adopter-workflow.js +63 -0
- package/packages/cli/validate-baseline-comparison.js +105 -0
- package/packages/cli/validate-mirai-graph.js +2434 -0
- package/packages/cli/validate-process-transition-report.js +105 -0
- package/packages/cli/validate-profile-results.js +64 -0
- package/packages/cli/validate-release-state.js +100 -0
- package/packages/cli/validate-routing-control-examples.js +79 -0
- package/pilots/independent-implementation-001-conference-planning/README.md +40 -0
- package/pilots/independent-implementation-001-conference-planning/gates/results.json +12 -0
- package/pilots/independent-implementation-001-conference-planning/graph/objects.json +74 -0
- package/pilots/independent-implementation-001-conference-planning/graph/relations.json +56 -0
- package/pilots/independent-implementation-001-conference-planning/graph-seed.json +65 -0
- package/pilots/independent-implementation-001-conference-planning/mirai-graph-package.json +14 -0
- package/pilots/independent-implementation-001-conference-planning/reports/pilot-report.md +120 -0
- package/pilots/independent-implementation-001-conference-planning/results/context-pack.json +35 -0
- package/pilots/independent-implementation-001-conference-planning/results/graph-embryo.json +81 -0
- package/pilots/independent-implementation-001-conference-planning/results/package-validation.json +7 -0
- package/pilots/independent-implementation-001-conference-planning/results/profile-conformance-result.json +28 -0
- package/pilots/independent-implementation-001-conference-planning/results/readiness-score.json +26 -0
- package/pilots/independent-implementation-001-conference-planning/results/seed-validation.json +7 -0
- package/pilots/independent-implementation-002-software-specification/README.md +40 -0
- package/pilots/independent-implementation-002-software-specification/gates/results.json +22 -0
- package/pilots/independent-implementation-002-software-specification/graph/objects.json +101 -0
- package/pilots/independent-implementation-002-software-specification/graph/relations.json +92 -0
- package/pilots/independent-implementation-002-software-specification/graph-seed.json +72 -0
- package/pilots/independent-implementation-002-software-specification/mirai-graph-package.json +14 -0
- package/pilots/independent-implementation-002-software-specification/reports/pilot-report.md +142 -0
- package/pilots/independent-implementation-002-software-specification/results/context-pack.json +184 -0
- package/pilots/independent-implementation-002-software-specification/results/graph-embryo.json +90 -0
- package/pilots/independent-implementation-002-software-specification/results/package-validation.json +7 -0
- package/pilots/independent-implementation-002-software-specification/results/profile-conformance-result.json +28 -0
- package/pilots/independent-implementation-002-software-specification/results/readiness-score.json +26 -0
- package/pilots/independent-implementation-002-software-specification/results/seed-validation.json +7 -0
- package/pilots/independent-implementation-002-software-specification/reviews/semantic-completeness-review.json +81 -0
- package/pilots/independent-implementation-003-ai-employee-workflow/README.md +42 -0
- package/pilots/independent-implementation-003-ai-employee-workflow/gates/results.json +30 -0
- package/pilots/independent-implementation-003-ai-employee-workflow/graph/objects.json +156 -0
- package/pilots/independent-implementation-003-ai-employee-workflow/graph/relations.json +147 -0
- package/pilots/independent-implementation-003-ai-employee-workflow/graph-seed.json +90 -0
- package/pilots/independent-implementation-003-ai-employee-workflow/mirai-graph-package.json +15 -0
- package/pilots/independent-implementation-003-ai-employee-workflow/reports/pilot-report.md +49 -0
- package/pilots/independent-implementation-003-ai-employee-workflow/results/profile-conformance-result.json +30 -0
- package/pilots/independent-implementation-004-research-program/README.md +41 -0
- package/pilots/independent-implementation-004-research-program/gates/results.json +21 -0
- package/pilots/independent-implementation-004-research-program/graph/objects.json +102 -0
- package/pilots/independent-implementation-004-research-program/graph/relations.json +84 -0
- package/pilots/independent-implementation-004-research-program/graph-seed.json +76 -0
- package/pilots/independent-implementation-004-research-program/mirai-graph-package.json +15 -0
- package/pilots/independent-implementation-004-research-program/reports/pilot-report.md +50 -0
- package/pilots/independent-implementation-004-research-program/results/profile-conformance-result.json +30 -0
- package/pilots/independent-implementation-005-organization-governance/README.md +42 -0
- package/pilots/independent-implementation-005-organization-governance/gates/results.json +20 -0
- package/pilots/independent-implementation-005-organization-governance/graph/objects.json +137 -0
- package/pilots/independent-implementation-005-organization-governance/graph/relations.json +110 -0
- package/pilots/independent-implementation-005-organization-governance/graph-seed.json +97 -0
- package/pilots/independent-implementation-005-organization-governance/mirai-graph-package.json +14 -0
- package/pilots/independent-implementation-005-organization-governance/reports/pilot-report.md +47 -0
- package/pilots/independent-implementation-005-organization-governance/results/profile-conformance-result.json +29 -0
- package/playground/README.md +78 -0
- package/playground/demo-report.md +84 -0
- package/profiles/README.md +19 -0
- package/profiles/ai-employee/README.md +132 -0
- package/profiles/ai-employee/profile.json +58 -0
- package/profiles/character-layer/README.md +143 -0
- package/profiles/character-layer/profile.json +46 -0
- package/profiles/implementation-control/README.md +170 -0
- package/profiles/implementation-control/profile.json +106 -0
- package/profiles/organization-governance/README.md +61 -0
- package/profiles/organization-governance/profile.json +56 -0
- package/profiles/project-management/README.md +115 -0
- package/profiles/project-management/profile.json +31 -0
- package/profiles/skill-runtime/README.md +94 -0
- package/profiles/skill-runtime/profile.json +58 -0
- package/profiles/software-specification/README.md +142 -0
- package/profiles/software-specification/profile.json +31 -0
- package/publications/README.md +24 -0
- package/publications/preprint-note.md +11 -0
- package/publications/preprint-outline.md +45 -0
- package/releases/0.1.0-alpha.0.md +45 -0
- package/releases/0.1.0-alpha.1.md +63 -0
- package/releases/0.1.0-alpha.10.md +93 -0
- package/releases/0.1.0-alpha.11.md +114 -0
- package/releases/0.1.0-alpha.2.md +37 -0
- package/releases/0.1.0-alpha.3.md +61 -0
- package/releases/0.1.0-alpha.4.md +53 -0
- package/releases/0.1.0-alpha.5.md +48 -0
- package/releases/0.1.0-alpha.6.md +96 -0
- package/releases/0.1.0-alpha.7.md +114 -0
- package/releases/0.1.0-alpha.8.md +92 -0
- package/releases/0.1.0-alpha.9.md +80 -0
- package/releases/1.0.0-rc.1.md +112 -0
- package/releases/README.md +114 -0
- package/schemas/baseline-comparison-result.schema.json +87 -0
- package/schemas/character-layer-integration.schema.json +112 -0
- package/schemas/character-layer-readiness.schema.json +73 -0
- package/schemas/context-pack.schema.json +137 -0
- package/schemas/development-cockpit.schema.json +74 -0
- package/schemas/feature-implementation-traceability.schema.json +80 -0
- package/schemas/federation-health-dashboard.schema.json +47 -0
- package/schemas/gate-result.schema.json +44 -0
- package/schemas/graph-dna-alignment.schema.json +49 -0
- package/schemas/graph-embryo.schema.json +51 -0
- package/schemas/graph-seed.schema.json +137 -0
- package/schemas/implementation-control-cycle.schema.json +265 -0
- package/schemas/implementation-control-loop.schema.json +84 -0
- package/schemas/launch-record.schema.json +78 -0
- package/schemas/model-portability-evidence.schema.json +93 -0
- package/schemas/multi-agent-coordination.schema.json +35 -0
- package/schemas/multi-source-quality-feedback.schema.json +54 -0
- package/schemas/object.schema.json +49 -0
- package/schemas/package-manifest.schema.json +53 -0
- package/schemas/process-control-contract.schema.json +100 -0
- package/schemas/process-transition-request.schema.json +41 -0
- package/schemas/profile.schema.json +56 -0
- package/schemas/readiness-score.schema.json +43 -0
- package/schemas/recovery-resume-record.schema.json +25 -0
- package/schemas/relation.schema.json +43 -0
- package/schemas/risk-control-matrix.schema.json +36 -0
- package/schemas/route-explanation.schema.json +51 -0
- package/schemas/route-regression-result.schema.json +33 -0
- package/schemas/routing-fixture-run.schema.json +45 -0
- package/schemas/routing-fixtures.schema.json +59 -0
- package/schemas/source-boundary-contract.schema.json +31 -0
- package/schemas/technology-quality-feedback.schema.json +116 -0
- package/schemas/work-state-machine.schema.json +34 -0
- package/standard/action-runtime-boundary.md +99 -0
- package/standard/adoption-levels.md +69 -0
- package/standard/conformance-levels.md +133 -0
- package/standard/context-pack-generation.md +141 -0
- package/standard/development-cockpit.md +67 -0
- package/standard/evidence-provenance.md +128 -0
- package/standard/feature-implementation-traceability.md +68 -0
- package/standard/federation-health.md +42 -0
- package/standard/feedback-learning-gate.md +101 -0
- package/standard/governance.md +137 -0
- package/standard/graph-as-ai-brain.md +81 -0
- package/standard/graph-dna-alignment.md +50 -0
- package/standard/graph-dna.md +70 -0
- package/standard/graph-embryo.md +69 -0
- package/standard/graph-seed.md +122 -0
- package/standard/hybrid-source-of-truth.md +91 -0
- package/standard/implementation-control-cycles.md +194 -0
- package/standard/implementation-control.md +102 -0
- package/standard/launch-record.md +53 -0
- package/standard/lifecycle-readiness.md +159 -0
- package/standard/multi-agent-coordination.md +50 -0
- package/standard/multi-source-quality-feedback.md +71 -0
- package/standard/object-model.md +152 -0
- package/standard/organization-governance.md +84 -0
- package/standard/process-control-contract.md +53 -0
- package/standard/profiles.md +233 -0
- package/standard/projection-views.md +69 -0
- package/standard/recovery-resume.md +49 -0
- package/standard/relation-model.md +139 -0
- package/standard/risk-control-matrix.md +53 -0
- package/standard/route-explanation.md +35 -0
- package/standard/route-regression.md +33 -0
- package/standard/routing-fixtures.md +54 -0
- package/standard/runtime-enablement.md +85 -0
- package/standard/source-boundary-contract.md +49 -0
- package/standard/standard-v0.1.md +132 -0
- package/standard/technology-quality-feedback.md +97 -0
- package/standard/test-suite.md +105 -0
- package/standard/work-state-machine.md +62 -0
- package/templates/README.md +64 -0
- package/templates/ai-employee-starter/README.md +9 -0
- package/templates/ai-employee-starter/gates/results.json +12 -0
- package/templates/ai-employee-starter/graph/objects.json +90 -0
- package/templates/ai-employee-starter/graph/relations.json +47 -0
- package/templates/ai-employee-starter/mirai-graph-package.json +14 -0
- package/templates/character-layer-starter/README.md +39 -0
- package/templates/character-layer-starter/gates/results.json +20 -0
- package/templates/character-layer-starter/graph/objects.json +308 -0
- package/templates/character-layer-starter/graph/relations.json +344 -0
- package/templates/character-layer-starter/mirai-graph-package.json +14 -0
- package/templates/organization-governance-starter/README.md +9 -0
- package/templates/organization-governance-starter/gates/results.json +12 -0
- package/templates/organization-governance-starter/graph/objects.json +112 -0
- package/templates/organization-governance-starter/graph/relations.json +65 -0
- package/templates/organization-governance-starter/mirai-graph-package.json +14 -0
- package/templates/research-program-starter/README.md +9 -0
- package/templates/research-program-starter/gates/results.json +12 -0
- package/templates/research-program-starter/graph/objects.json +79 -0
- package/templates/research-program-starter/graph/relations.json +47 -0
- package/templates/research-program-starter/mirai-graph-package.json +14 -0
- package/templates/software-project-starter/README.md +9 -0
- package/templates/software-project-starter/gates/results.json +12 -0
- package/templates/software-project-starter/graph/objects.json +79 -0
- package/templates/software-project-starter/graph/relations.json +47 -0
- package/templates/software-project-starter/mirai-graph-package.json +14 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const fs = require("fs");
|
|
4
|
+
const { spawnSync } = require("child_process");
|
|
5
|
+
|
|
6
|
+
const stateMachine = "examples/process-transition-minimal/state-machine.json";
|
|
7
|
+
const fixtures = [
|
|
8
|
+
"examples/process-transition-minimal/results/transition-explanation-valid.json",
|
|
9
|
+
"examples/process-transition-minimal/results/transition-explanation-invalid-ready-to-written.json"
|
|
10
|
+
];
|
|
11
|
+
|
|
12
|
+
function readJson(filePath) {
|
|
13
|
+
return JSON.parse(fs.readFileSync(filePath, "utf8"));
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function runValidator(args) {
|
|
17
|
+
return spawnSync(process.execPath, ["packages/cli/validate-mirai-graph.js", ...args], {
|
|
18
|
+
encoding: "utf8"
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function sortJson(value) {
|
|
23
|
+
if (Array.isArray(value)) {
|
|
24
|
+
return value.map(sortJson);
|
|
25
|
+
}
|
|
26
|
+
if (value && typeof value === "object") {
|
|
27
|
+
return Object.fromEntries(
|
|
28
|
+
Object.keys(value).sort().map((key) => [key, sortJson(value[key])])
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
return value;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function stable(value) {
|
|
35
|
+
return JSON.stringify(sortJson(value));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const errors = [];
|
|
39
|
+
|
|
40
|
+
for (const fixturePath of fixtures) {
|
|
41
|
+
const fixture = readJson(fixturePath);
|
|
42
|
+
const run = runValidator(["process-transition", stateMachine, fixture.request_ref]);
|
|
43
|
+
let output;
|
|
44
|
+
try {
|
|
45
|
+
output = JSON.parse(run.stdout);
|
|
46
|
+
} catch (error) {
|
|
47
|
+
errors.push(`${fixturePath}: validator did not emit parseable JSON`);
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (output.valid !== fixture.expected_valid) {
|
|
52
|
+
errors.push(`${fixturePath}: expected valid=${fixture.expected_valid}, got ${output.valid}`);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if (fixture.expected_valid && run.status !== 0) {
|
|
56
|
+
errors.push(`${fixturePath}: expected validator exit 0, got ${run.status}`);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
if (!fixture.expected_valid && run.status === 0) {
|
|
60
|
+
errors.push(`${fixturePath}: expected validator to fail`);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
if (!output.explanation || typeof output.explanation !== "object") {
|
|
64
|
+
errors.push(`${fixturePath}: missing explanation object`);
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (stable(output.explanation) !== stable(fixture.explanation)) {
|
|
69
|
+
errors.push(`${fixturePath}: explanation does not match committed fixture`);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if (fixture.expected_error && !output.errors.includes(fixture.expected_error)) {
|
|
73
|
+
errors.push(`${fixturePath}: expected error not found`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
const markdown = runValidator([
|
|
78
|
+
"--markdown",
|
|
79
|
+
"process-transition",
|
|
80
|
+
stateMachine,
|
|
81
|
+
"examples/process-transition-minimal/transition-request.json"
|
|
82
|
+
]);
|
|
83
|
+
if (markdown.status !== 0) {
|
|
84
|
+
errors.push(`markdown report failed with exit ${markdown.status}`);
|
|
85
|
+
}
|
|
86
|
+
for (const requiredText of [
|
|
87
|
+
"Process Transition Decision Report",
|
|
88
|
+
"Transition: `release_ready -> released`",
|
|
89
|
+
"Kaizen decision: `satisfied`",
|
|
90
|
+
"Missing Evidence"
|
|
91
|
+
]) {
|
|
92
|
+
if (!markdown.stdout.includes(requiredText)) {
|
|
93
|
+
errors.push(`markdown report missing ${requiredText}`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
const output = {
|
|
98
|
+
mode: "process_transition_report",
|
|
99
|
+
valid: errors.length === 0,
|
|
100
|
+
checked_files: fixtures,
|
|
101
|
+
errors
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
console.log(JSON.stringify(output, null, 2));
|
|
105
|
+
process.exit(output.valid ? 0 : 1);
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const fs = require("fs");
|
|
4
|
+
|
|
5
|
+
const resultFiles = [
|
|
6
|
+
"examples/minimal-graph/results/profile-conformance-result.json",
|
|
7
|
+
"examples/ai-employee-minimal/results/profile-conformance-result.json",
|
|
8
|
+
"examples/skill-runtime-minimal/results/profile-conformance-result.json",
|
|
9
|
+
"examples/organization-governance-minimal/results/profile-conformance-result.json",
|
|
10
|
+
"benchmarks/synthetic-context-reduction-v0/results/profile-conformance-result.json",
|
|
11
|
+
"pilots/independent-implementation-001-conference-planning/results/profile-conformance-result.json",
|
|
12
|
+
"pilots/independent-implementation-002-software-specification/results/profile-conformance-result.json",
|
|
13
|
+
"pilots/independent-implementation-003-ai-employee-workflow/results/profile-conformance-result.json",
|
|
14
|
+
"pilots/independent-implementation-004-research-program/results/profile-conformance-result.json",
|
|
15
|
+
"pilots/independent-implementation-005-organization-governance/results/profile-conformance-result.json"
|
|
16
|
+
];
|
|
17
|
+
|
|
18
|
+
const errors = [];
|
|
19
|
+
|
|
20
|
+
for (const file of resultFiles) {
|
|
21
|
+
let result;
|
|
22
|
+
try {
|
|
23
|
+
result = JSON.parse(fs.readFileSync(file, "utf8"));
|
|
24
|
+
} catch (error) {
|
|
25
|
+
errors.push(`${file}: cannot read JSON: ${error.message}`);
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (result.valid !== true) {
|
|
30
|
+
errors.push(`${file}: valid must be true`);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (!Array.isArray(result.errors) || result.errors.length !== 0) {
|
|
34
|
+
errors.push(`${file}: errors must be an empty array`);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
if (typeof result.profile !== "string" || result.profile.trim() === "") {
|
|
38
|
+
errors.push(`${file}: profile must be a non-empty string`);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
if (
|
|
42
|
+
typeof result.command !== "string" ||
|
|
43
|
+
!result.command.includes("validate-mirai-graph.js")
|
|
44
|
+
) {
|
|
45
|
+
errors.push(`${file}: command must reference validate-mirai-graph.js`);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if (
|
|
49
|
+
typeof result.claim_supported !== "string" ||
|
|
50
|
+
!result.claim_supported.includes("declared Mirai Graph profile shape")
|
|
51
|
+
) {
|
|
52
|
+
errors.push(`${file}: claim_supported must stay limited to profile shape conformance`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const output = {
|
|
57
|
+
mode: "profile_conformance_results",
|
|
58
|
+
valid: errors.length === 0,
|
|
59
|
+
checked_files: resultFiles,
|
|
60
|
+
errors
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
console.log(JSON.stringify(output, null, 2));
|
|
64
|
+
process.exit(output.valid ? 0 : 1);
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const { spawnSync } = require("child_process");
|
|
4
|
+
const path = require("path");
|
|
5
|
+
|
|
6
|
+
const root = path.resolve(__dirname, "..", "..");
|
|
7
|
+
const node = process.execPath;
|
|
8
|
+
const releaseState = path.join(root, "packages", "cli", "release-state.js");
|
|
9
|
+
|
|
10
|
+
const args = process.argv.slice(2);
|
|
11
|
+
const requireGitTag = args.includes("--require-git-tag");
|
|
12
|
+
const requireGithubRelease = args.includes("--require-github-release");
|
|
13
|
+
const requireNpmPublished = args.includes("--require-npm-published");
|
|
14
|
+
const releaseStateArgs = [
|
|
15
|
+
...(requireGitTag ? ["--require-git-tag"] : []),
|
|
16
|
+
...(requireGithubRelease ? ["--require-github-release"] : []),
|
|
17
|
+
...(requireNpmPublished ? ["--require-npm-published"] : [])
|
|
18
|
+
];
|
|
19
|
+
|
|
20
|
+
const result = spawnSync(node, [releaseState, ...releaseStateArgs], {
|
|
21
|
+
cwd: root,
|
|
22
|
+
encoding: "utf8"
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
const errors = [];
|
|
26
|
+
let state = null;
|
|
27
|
+
|
|
28
|
+
if (result.status !== 0) {
|
|
29
|
+
errors.push(`release-state command failed with exit ${result.status}`);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
try {
|
|
33
|
+
state = JSON.parse(result.stdout);
|
|
34
|
+
} catch (error) {
|
|
35
|
+
errors.push("release-state output is not valid JSON");
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
if (state) {
|
|
39
|
+
if (state.report_type !== "mirai_graph_release_state") {
|
|
40
|
+
errors.push("unexpected report_type");
|
|
41
|
+
}
|
|
42
|
+
if (!state.package || state.package.name !== "mirai-graph") {
|
|
43
|
+
errors.push("package name must be mirai-graph");
|
|
44
|
+
}
|
|
45
|
+
if (!state.package || !state.package.version) {
|
|
46
|
+
errors.push("package version is required");
|
|
47
|
+
}
|
|
48
|
+
if (requireGitTag && (!state.git || !state.git.tag_exists)) {
|
|
49
|
+
errors.push("current package version must have a local git tag");
|
|
50
|
+
}
|
|
51
|
+
if (requireGithubRelease && (!state.github_release || !state.github_release.found)) {
|
|
52
|
+
errors.push("matching GitHub Release must exist");
|
|
53
|
+
}
|
|
54
|
+
if (!state.npm || !state.npm.package || typeof state.npm.package.version_published !== "boolean") {
|
|
55
|
+
errors.push("npm package publication state must be reported");
|
|
56
|
+
}
|
|
57
|
+
if (!state.npm || typeof state.npm.authenticated !== "boolean") {
|
|
58
|
+
errors.push("npm authentication state must be reported");
|
|
59
|
+
}
|
|
60
|
+
if (!Array.isArray(state.blockers)) {
|
|
61
|
+
errors.push("blockers must be an array");
|
|
62
|
+
}
|
|
63
|
+
if (!Array.isArray(state.boundary) || !state.boundary.some((item) => item.includes("does not publish"))) {
|
|
64
|
+
errors.push("release-state boundary must state that the report does not publish");
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const markdown = spawnSync(node, [releaseState, "--markdown", ...releaseStateArgs], {
|
|
69
|
+
cwd: root,
|
|
70
|
+
encoding: "utf8"
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
if (markdown.status !== 0) {
|
|
74
|
+
errors.push(`release-state markdown command failed with exit ${markdown.status}`);
|
|
75
|
+
} else {
|
|
76
|
+
for (const expected of ["Mirai Graph Release State", "GitHub Release", "NPM Package", "Blockers"]) {
|
|
77
|
+
if (!markdown.stdout.includes(expected)) {
|
|
78
|
+
errors.push(`markdown report missing ${expected}`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const validation = {
|
|
84
|
+
mode: "release_state",
|
|
85
|
+
valid: errors.length === 0,
|
|
86
|
+
checked_version: state && state.package && state.package.version || null,
|
|
87
|
+
require_git_tag: requireGitTag,
|
|
88
|
+
require_github_release: requireGithubRelease,
|
|
89
|
+
require_npm_published: requireNpmPublished,
|
|
90
|
+
npm_version_published: state && state.npm && state.npm.package && state.npm.package.version_published,
|
|
91
|
+
npm_authenticated: state && state.npm && state.npm.authenticated,
|
|
92
|
+
blockers: state && state.blockers || [],
|
|
93
|
+
errors
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
console.log(JSON.stringify(validation, null, 2));
|
|
97
|
+
|
|
98
|
+
if (errors.length > 0) {
|
|
99
|
+
process.exit(1);
|
|
100
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const fs = require("fs");
|
|
4
|
+
const path = require("path");
|
|
5
|
+
|
|
6
|
+
const exampleDir = path.join("examples", "federation-routing-smoke");
|
|
7
|
+
const requiredFiles = [
|
|
8
|
+
"routing-fixtures.json",
|
|
9
|
+
"routing-fixture-run.json",
|
|
10
|
+
"route-explanation.json",
|
|
11
|
+
"route-regression-result.json",
|
|
12
|
+
"federation-health-dashboard.json"
|
|
13
|
+
];
|
|
14
|
+
|
|
15
|
+
const errors = [];
|
|
16
|
+
|
|
17
|
+
function readJson(file) {
|
|
18
|
+
try {
|
|
19
|
+
return JSON.parse(fs.readFileSync(file, "utf8"));
|
|
20
|
+
} catch (error) {
|
|
21
|
+
errors.push(`${file}: cannot read JSON: ${error.message}`);
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
for (const fileName of requiredFiles) {
|
|
27
|
+
const file = path.join(exampleDir, fileName);
|
|
28
|
+
if (!fs.existsSync(file)) {
|
|
29
|
+
errors.push(`${file}: missing`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const fixtures = readJson(path.join(exampleDir, "routing-fixtures.json"));
|
|
34
|
+
const run = readJson(path.join(exampleDir, "routing-fixture-run.json"));
|
|
35
|
+
const explanation = readJson(path.join(exampleDir, "route-explanation.json"));
|
|
36
|
+
const regression = readJson(path.join(exampleDir, "route-regression-result.json"));
|
|
37
|
+
const health = readJson(path.join(exampleDir, "federation-health-dashboard.json"));
|
|
38
|
+
|
|
39
|
+
if (fixtures) {
|
|
40
|
+
if (fixtures.canonical_write_allowed !== false) errors.push("routing-fixtures.json: canonical_write_allowed must be false");
|
|
41
|
+
if (!Array.isArray(fixtures.fixtures) || fixtures.fixtures.length < 2) errors.push("routing-fixtures.json: must include at least two synthetic fixtures");
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (run) {
|
|
45
|
+
if (run.canonical_write_allowed !== false) errors.push("routing-fixture-run.json: canonical_write_allowed must be false");
|
|
46
|
+
if (!run.summary || run.summary.fixture_count !== 2 || run.summary.passed !== 2) errors.push("routing-fixture-run.json: expected two passing fixtures");
|
|
47
|
+
for (const result of run.results || []) {
|
|
48
|
+
if (!result.execution_evidence_ref) errors.push(`${result.fixture_id}: execution_evidence_ref is required`);
|
|
49
|
+
if (!result.route_result_ref) errors.push(`${result.fixture_id}: route_result_ref is required`);
|
|
50
|
+
if (result.high_risk_route && !result.route_explanation_ref) errors.push(`${result.fixture_id}: high-risk route requires route_explanation_ref`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (explanation) {
|
|
55
|
+
if (explanation.canonical_write_allowed !== false) errors.push("route-explanation.json: canonical_write_allowed must be false");
|
|
56
|
+
if (!explanation.route_evidence_ref) errors.push("route-explanation.json: route_evidence_ref is required");
|
|
57
|
+
if (explanation.explanation_source !== "synthetic_example") errors.push("route-explanation.json: explanation_source must be synthetic_example");
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (regression) {
|
|
61
|
+
if (regression.regression_status !== "unchanged") errors.push("route-regression-result.json: regression_status must be unchanged");
|
|
62
|
+
if (regression.canonical_write_allowed !== false) errors.push("route-regression-result.json: canonical_write_allowed must be false");
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
if (health) {
|
|
66
|
+
if (health.watch_conflict_count < 1) errors.push("federation-health-dashboard.json: watch_conflict_count should expose watched conflict families");
|
|
67
|
+
if (health.high_risk_without_explanation_count !== 0) errors.push("federation-health-dashboard.json: high_risk_without_explanation_count must be zero");
|
|
68
|
+
if (health.canonical_write_allowed !== false) errors.push("federation-health-dashboard.json: canonical_write_allowed must be false");
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const output = {
|
|
72
|
+
mode: "routing_control_examples",
|
|
73
|
+
valid: errors.length === 0,
|
|
74
|
+
checked_files: requiredFiles.map((fileName) => path.join(exampleDir, fileName)),
|
|
75
|
+
errors
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
console.log(JSON.stringify(output, null, 2));
|
|
79
|
+
process.exit(output.valid ? 0 : 1);
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Independent Implementation Pilot 001: Conference Planning
|
|
2
|
+
|
|
3
|
+
Status: pilot fixture
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
This pilot tests whether a valid Mirai Graph package can be created using only
|
|
8
|
+
the public repository materials.
|
|
9
|
+
|
|
10
|
+
## Domain
|
|
11
|
+
|
|
12
|
+
Synthetic conference planning workflow.
|
|
13
|
+
|
|
14
|
+
No private company, customer, employee or internal project material is used.
|
|
15
|
+
|
|
16
|
+
## Research Question
|
|
17
|
+
|
|
18
|
+
Can a developer create a valid Level 1 Mirai Graph package for a small workflow
|
|
19
|
+
using only public Mirai Graph docs, schemas and examples?
|
|
20
|
+
|
|
21
|
+
## Files
|
|
22
|
+
|
|
23
|
+
- `graph-seed.json`
|
|
24
|
+
- `mirai-graph-package.json`
|
|
25
|
+
- `graph/objects.json`
|
|
26
|
+
- `graph/relations.json`
|
|
27
|
+
- `gates/results.json`
|
|
28
|
+
- `results/`
|
|
29
|
+
- `reports/pilot-report.md`
|
|
30
|
+
|
|
31
|
+
## Commands
|
|
32
|
+
|
|
33
|
+
Run from repository root:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
node packages/cli/validate-mirai-graph.js seed pilots/independent-implementation-001-conference-planning/graph-seed.json
|
|
37
|
+
node packages/cli/validate-mirai-graph.js pilots/independent-implementation-001-conference-planning
|
|
38
|
+
node packages/cli/readiness-score.js pilots/independent-implementation-001-conference-planning --target-mode pilot
|
|
39
|
+
node packages/cli/context-pack.js pilots/independent-implementation-001-conference-planning --task-id task.prepare_speaker_schedule
|
|
40
|
+
```
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "gate_result.conference_planning.public_safety",
|
|
4
|
+
"gate_id": "gate.public_safety",
|
|
5
|
+
"target_id": "package.conference_planning_pilot_001",
|
|
6
|
+
"verdict": "pass",
|
|
7
|
+
"summary": "The pilot uses synthetic public-safe conference planning material only.",
|
|
8
|
+
"evidence": ["source.conference_brief"],
|
|
9
|
+
"reviewed_at": "2026-05-28",
|
|
10
|
+
"reviewer": "Mirai Graph maintainers"
|
|
11
|
+
}
|
|
12
|
+
]
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "source.conference_brief",
|
|
4
|
+
"kind": "evidence",
|
|
5
|
+
"title": "Synthetic conference brief",
|
|
6
|
+
"summary": "A public-safe synthetic brief for a one-day community conference.",
|
|
7
|
+
"readiness": "accepted",
|
|
8
|
+
"evidence": [],
|
|
9
|
+
"profile": "project_management"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"id": "system.community_conference",
|
|
13
|
+
"kind": "system",
|
|
14
|
+
"title": "Community Conference",
|
|
15
|
+
"summary": "A synthetic one-day conference planning workflow.",
|
|
16
|
+
"readiness": "review_ready",
|
|
17
|
+
"evidence": ["source.conference_brief"],
|
|
18
|
+
"profile": "project_management"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "goal.publish_reliable_schedule",
|
|
22
|
+
"kind": "goal",
|
|
23
|
+
"title": "Publish reliable schedule",
|
|
24
|
+
"summary": "Prepare and publish a reliable speaker schedule for the conference.",
|
|
25
|
+
"readiness": "review_ready",
|
|
26
|
+
"evidence": ["source.conference_brief"],
|
|
27
|
+
"profile": "project_management"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "task.collect_session_proposals",
|
|
31
|
+
"kind": "task",
|
|
32
|
+
"title": "Collect session proposals",
|
|
33
|
+
"summary": "Collect proposed talks and workshops before schedule planning.",
|
|
34
|
+
"readiness": "review_ready",
|
|
35
|
+
"evidence": ["source.conference_brief"],
|
|
36
|
+
"profile": "project_management"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "task.confirm_room_capacity",
|
|
40
|
+
"kind": "task",
|
|
41
|
+
"title": "Confirm room capacity",
|
|
42
|
+
"summary": "Confirm available room capacity before assigning sessions.",
|
|
43
|
+
"readiness": "review_ready",
|
|
44
|
+
"evidence": ["source.conference_brief"],
|
|
45
|
+
"profile": "project_management"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "decision.schedule_publish_gate",
|
|
49
|
+
"kind": "decision",
|
|
50
|
+
"title": "Schedule publish gate",
|
|
51
|
+
"summary": "The schedule may be published only after owner review.",
|
|
52
|
+
"readiness": "draft",
|
|
53
|
+
"evidence": ["source.conference_brief"],
|
|
54
|
+
"profile": "project_management"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "risk.session_room_mismatch",
|
|
58
|
+
"kind": "risk",
|
|
59
|
+
"title": "Session room mismatch",
|
|
60
|
+
"summary": "A popular session may be assigned to a room that is too small.",
|
|
61
|
+
"readiness": "review_ready",
|
|
62
|
+
"evidence": ["source.conference_brief"],
|
|
63
|
+
"profile": "project_management"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"id": "gate.owner_schedule_approval",
|
|
67
|
+
"kind": "governance_gate",
|
|
68
|
+
"title": "Owner schedule approval",
|
|
69
|
+
"summary": "Owner approval is required before schedule publication.",
|
|
70
|
+
"readiness": "accepted",
|
|
71
|
+
"evidence": ["source.conference_brief"],
|
|
72
|
+
"profile": "project_management"
|
|
73
|
+
}
|
|
74
|
+
]
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "relation.system.community_conference.supports.goal.publish_reliable_schedule",
|
|
4
|
+
"type": "supports",
|
|
5
|
+
"source": "system.community_conference",
|
|
6
|
+
"target": "goal.publish_reliable_schedule",
|
|
7
|
+
"readiness": "review_ready",
|
|
8
|
+
"evidence": ["source.conference_brief"],
|
|
9
|
+
"profile": "project_management"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"id": "relation.task.collect_session_proposals.supports.goal.publish_reliable_schedule",
|
|
13
|
+
"type": "supports",
|
|
14
|
+
"source": "task.collect_session_proposals",
|
|
15
|
+
"target": "goal.publish_reliable_schedule",
|
|
16
|
+
"readiness": "review_ready",
|
|
17
|
+
"evidence": ["source.conference_brief"],
|
|
18
|
+
"profile": "project_management"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "relation.task.confirm_room_capacity.blocks.risk.session_room_mismatch",
|
|
22
|
+
"type": "blocks",
|
|
23
|
+
"source": "task.confirm_room_capacity",
|
|
24
|
+
"target": "risk.session_room_mismatch",
|
|
25
|
+
"readiness": "review_ready",
|
|
26
|
+
"evidence": ["source.conference_brief"],
|
|
27
|
+
"profile": "project_management"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "relation.risk.session_room_mismatch.blocks.goal.publish_reliable_schedule",
|
|
31
|
+
"type": "blocks",
|
|
32
|
+
"source": "risk.session_room_mismatch",
|
|
33
|
+
"target": "goal.publish_reliable_schedule",
|
|
34
|
+
"readiness": "review_ready",
|
|
35
|
+
"evidence": ["source.conference_brief"],
|
|
36
|
+
"profile": "project_management"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "relation.gate.owner_schedule_approval.governs.decision.schedule_publish_gate",
|
|
40
|
+
"type": "governs",
|
|
41
|
+
"source": "gate.owner_schedule_approval",
|
|
42
|
+
"target": "decision.schedule_publish_gate",
|
|
43
|
+
"readiness": "accepted",
|
|
44
|
+
"evidence": ["source.conference_brief"],
|
|
45
|
+
"profile": "project_management"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "relation.decision.schedule_publish_gate.depends_on.task.confirm_room_capacity",
|
|
49
|
+
"type": "depends_on",
|
|
50
|
+
"source": "decision.schedule_publish_gate",
|
|
51
|
+
"target": "task.confirm_room_capacity",
|
|
52
|
+
"readiness": "draft",
|
|
53
|
+
"evidence": ["source.conference_brief"],
|
|
54
|
+
"profile": "project_management"
|
|
55
|
+
}
|
|
56
|
+
]
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "0.1.0",
|
|
3
|
+
"seed_id": "seed.conference_planning",
|
|
4
|
+
"target_graph_id": "graph.conference_planning",
|
|
5
|
+
"purpose": "Create a Mirai Graph package for managing a small public conference planning workflow.",
|
|
6
|
+
"target_profile": "profile.project_management",
|
|
7
|
+
"target_mode": "pilot",
|
|
8
|
+
"graph_dna": {
|
|
9
|
+
"purpose": "Keep conference goals, planning tasks, decisions, risks and governance checks connected.",
|
|
10
|
+
"evolution_vector": "Grow from a small planning map into a reviewed conference operations graph.",
|
|
11
|
+
"non_negotiable_principles": [
|
|
12
|
+
"The package must remain synthetic and public-safe.",
|
|
13
|
+
"Schedule decisions require owner review before they are treated as accepted."
|
|
14
|
+
]
|
|
15
|
+
},
|
|
16
|
+
"source_boundaries": {
|
|
17
|
+
"allowed_sources": [
|
|
18
|
+
"synthetic conference planning brief",
|
|
19
|
+
"synthetic organizer notes"
|
|
20
|
+
],
|
|
21
|
+
"excluded_sources": [
|
|
22
|
+
"real attendee data",
|
|
23
|
+
"private sponsor contracts",
|
|
24
|
+
"personal speaker contact details"
|
|
25
|
+
],
|
|
26
|
+
"canonical_write_allowed": false
|
|
27
|
+
},
|
|
28
|
+
"growth_rules": {
|
|
29
|
+
"allowed_object_families": [
|
|
30
|
+
"system",
|
|
31
|
+
"goal",
|
|
32
|
+
"task",
|
|
33
|
+
"decision",
|
|
34
|
+
"risk",
|
|
35
|
+
"evidence",
|
|
36
|
+
"governance_gate"
|
|
37
|
+
],
|
|
38
|
+
"allowed_relation_families": [
|
|
39
|
+
"depends_on",
|
|
40
|
+
"blocks",
|
|
41
|
+
"supports",
|
|
42
|
+
"evidences",
|
|
43
|
+
"governs",
|
|
44
|
+
"belongs_to"
|
|
45
|
+
],
|
|
46
|
+
"max_initial_objects": 12,
|
|
47
|
+
"depth_mode": "light"
|
|
48
|
+
},
|
|
49
|
+
"review_gates": [
|
|
50
|
+
"human_review_before_canonical_write",
|
|
51
|
+
"public_safety_before_release",
|
|
52
|
+
"owner_approval_before_schedule_publish"
|
|
53
|
+
],
|
|
54
|
+
"generated_views": [
|
|
55
|
+
"seed_summary",
|
|
56
|
+
"candidate_object_list",
|
|
57
|
+
"risk_view",
|
|
58
|
+
"next_action_view"
|
|
59
|
+
],
|
|
60
|
+
"stop_conditions": [
|
|
61
|
+
"real_personal_data_requested",
|
|
62
|
+
"schedule_publish_requested_before_owner_approval",
|
|
63
|
+
"candidate_count_exceeds_budget"
|
|
64
|
+
]
|
|
65
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "package.conference_planning_pilot_001",
|
|
3
|
+
"name": "Conference Planning Pilot 001",
|
|
4
|
+
"version": "0.1.0",
|
|
5
|
+
"profile": "project_management",
|
|
6
|
+
"conformance_level": "level_1",
|
|
7
|
+
"description": "A synthetic independent implementation pilot for a conference planning workflow.",
|
|
8
|
+
"license": "CC-BY-4.0",
|
|
9
|
+
"public_safety": "synthetic_public",
|
|
10
|
+
"graph": {
|
|
11
|
+
"objects": "graph/objects.json",
|
|
12
|
+
"relations": "graph/relations.json"
|
|
13
|
+
}
|
|
14
|
+
}
|