platformforge 0.1.6__tar.gz → 0.2.1__tar.gz
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.
- {platformforge-0.1.6 → platformforge-0.2.1}/.gitignore +5 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/CHANGELOG.md +24 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/PKG-INFO +1 -1
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/CLI-SURFACE.md +16 -5
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/INDEX.md +25 -0
- platformforge-0.2.1/docs/audits/FORGE_CONTEXT_BASELINE.md +425 -0
- platformforge-0.2.1/docs/audits/FORGE_CONTEXT_FINAL_HOMOLOGATION.md +307 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/economy-parity/VALIDATION-RECEIPT.json +16 -16
- platformforge-0.2.1/docs/evals-taxonomy.md +79 -0
- platformforge-0.2.1/docs/install/DISTRIBUTION_PARITY.md +80 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/knowledge-program/classification-report.md +5 -4
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/knowledge-program/context-map.jsonl +48 -40
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/knowledge-program/inventory.jsonl +457 -449
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/__init__.py +1 -1
- platformforge-0.2.1/platformforge/_forgecontext.py +2989 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/_installkit.py +21 -3
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/cli/main.py +101 -5
- platformforge-0.2.1/platformforge/discovery.py +330 -0
- platformforge-0.2.1/platformforge/discovery_ops.py +246 -0
- platformforge-0.2.1/platformforge/evals/surface.py +200 -0
- platformforge-0.2.1/platformforge/evals/taxonomy.py +330 -0
- platformforge-0.2.1/platformforge/install/service.py +923 -0
- platformforge-0.2.1/platformforge/mcp/parity.py +166 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/pyproject.toml +15 -2
- {platformforge-0.1.6 → platformforge-0.2.1}/scripts/forge_bootstrap.py +15 -5
- {platformforge-0.1.6 → platformforge-0.2.1}/scripts/forge_installkit.py +21 -3
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_artifact_contents.py +6 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_contracts.py +1 -1
- platformforge-0.2.1/tests/test_discovery_ops.py +45 -0
- platformforge-0.2.1/tests/test_evals_surface.py +289 -0
- platformforge-0.2.1/tests/test_install_lifecycle.py +457 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_mcp.py +45 -0
- platformforge-0.2.1/tests/test_wheel_isolation.py +276 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/uv.lock +1 -1
- platformforge-0.1.6/platformforge/install/service.py +0 -421
- platformforge-0.1.6/platformforge/mcp/parity.py +0 -69
- platformforge-0.1.6/tests/test_install_lifecycle.py +0 -224
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/pf-extractor.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/pf-graph-builder.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/pf-inventory.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/pf-judge.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/pf-reconciler.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/pf-simulator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/pf-synthesizer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/pf-verifier.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-adversarial-critic.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-ai-infra-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-architecture-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-aws-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-capacity-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-change-coordinator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-crossplane-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-debate-referee.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-economy-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-evidence-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-federation-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-finops-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-fleet-coordinator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-fleet-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-gitops-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-graph-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-iac-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-incident-coordinator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-kubernetes-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-operations-safety-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-optimization-coordinator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-orchestrator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-planner.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-policy-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-privacy-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-product-coordinator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-product-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-release-guardian.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-security-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-security-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-sre-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-task-spec-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/agents/platform-verifier.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/skills/platformforge-agents/SKILL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/skills/platformforge-change/SKILL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/skills/platformforge-core/SKILL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/skills/platformforge-economy/SKILL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/skills/platformforge-finops/SKILL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/skills/platformforge-fleet/SKILL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/skills/platformforge-governance/SKILL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/skills/platformforge-graph/SKILL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/skills/platformforge-lab/SKILL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/skills/platformforge-sdd/SKILL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/skills/platformforge-security/SKILL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.agents/skills/platformforge-sre/SKILL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/pf-extractor.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/pf-graph-builder.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/pf-inventory.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/pf-judge.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/pf-reconciler.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/pf-simulator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/pf-synthesizer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/pf-verifier.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-adversarial-critic.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-ai-infra-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-architecture-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-aws-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-capacity-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-change-coordinator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-crossplane-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-debate-referee.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-economy-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-evidence-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-federation-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-finops-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-fleet-coordinator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-fleet-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-gitops-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-graph-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-iac-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-incident-coordinator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-kubernetes-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-operations-safety-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-optimization-coordinator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-orchestrator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-planner.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-policy-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-privacy-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-product-coordinator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-product-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-release-guardian.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-security-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-security-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-sre-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-task-spec-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.claude/agents/platform-verifier.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/pf-extractor.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/pf-graph-builder.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/pf-inventory.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/pf-judge.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/pf-reconciler.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/pf-simulator.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/pf-synthesizer.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/pf-verifier.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-adversarial-critic.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-ai-infra-specialist.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-architecture-reviewer.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-aws-specialist.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-capacity-specialist.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-change-coordinator.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-crossplane-specialist.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-debate-referee.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-economy-reviewer.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-evidence-reviewer.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-federation-specialist.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-finops-specialist.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-fleet-coordinator.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-fleet-specialist.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-gitops-specialist.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-graph-specialist.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-iac-specialist.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-incident-coordinator.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-kubernetes-specialist.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-operations-safety-reviewer.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-optimization-coordinator.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-orchestrator.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-planner.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-policy-specialist.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-privacy-reviewer.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-product-coordinator.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-product-specialist.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-release-guardian.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-security-reviewer.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-security-specialist.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-sre-specialist.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-task-spec-reviewer.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.codex/agents/platform-verifier.toml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/pf-extractor.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/pf-graph-builder.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/pf-inventory.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/pf-judge.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/pf-reconciler.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/pf-simulator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/pf-synthesizer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/pf-verifier.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-adversarial-critic.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-ai-infra-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-architecture-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-aws-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-capacity-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-change-coordinator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-crossplane-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-debate-referee.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-economy-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-evidence-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-federation-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-finops-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-fleet-coordinator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-fleet-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-gitops-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-graph-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-iac-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-incident-coordinator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-kubernetes-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-operations-safety-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-optimization-coordinator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-orchestrator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-planner.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-policy-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-privacy-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-product-coordinator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-product-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-release-guardian.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-security-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-security-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-sre-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-task-spec-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.devin/agents/platform-verifier.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.github/CODEOWNERS +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.github/workflows/ci.yml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.github/workflows/publish-pypi.yml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.platformforge/cases/golden/argo-bad-rollout/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.platformforge/cases/golden/aws-dump/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.platformforge/cases/golden/container-unsigned/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.platformforge/cases/golden/gitops-drift/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.platformforge/cases/golden/k8s-bad-readiness/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.platformforge/cases/golden/k8s-single-replica/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.platformforge/cases/golden/network-policy-missing/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.platformforge/cases/golden/secret-exposure/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.platformforge/cases/golden/slo-burn/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.platformforge/cases/golden/terraform-public-bucket/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.platformforge/cases/holdout/cost-idle-workload/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.platformforge/cases/holdout/crossplane-platform/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.platformforge/cases/holdout/demo-platform/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.platformforge/cases/holdout/k8s-missing-limits/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.platformforge/cases/holdout/secret-prose-mixed/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.platformforge/cases/holdout/terraform-iam-wildcard/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.platformforge/ledgers/false-negatives.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/.platformforge/ledgers/false-positives.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/AGENTIC-OS.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/AGENTS.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/AI-PLATFORM.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/APPROVALS.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/ARCHITECTURE.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/CAPABILITIES.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/CAPACITY.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/CLI-REFERENCE.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/CLOUD.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/CODE_OF_CONDUCT.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/COLLECTORS.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/COMPATIBILITY.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/CONTRIBUTING.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/CREDITS.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/DEPRECATION.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/DOMAIN-MAP.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/ECONOMY.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/ENTERPRISE.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/EVALS.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/EXECUTION.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/FEDERATION.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/FLEET.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/GLOSSARY.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/GOLDEN-PATH-ANALYTICS.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/GOLDEN-PATHS.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/GRAPHFY.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/INCIDENTS.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/KNOWLEDGE.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/LICENSE +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/LIVE.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/MCP.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/MULTI-CLUSTER.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/OBSERVATION-MODEL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/OPS.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/OPTIMIZATION.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/PLATFORM-ANALYTICS.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/PLATFORM-MEASUREMENT.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/POLICY-INTELLIGENCE.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/QUALITY-PER-TOKEN.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/README.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/README.pt-BR.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/RECONCILIATION.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/RESEARCH.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/ROADMAP.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/ROLLBACK.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/RULES.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/RUNBOOKS.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/RUNTIME-TOPOLOGY.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/SDD.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/SECURITY.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/SOURCES.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/SUPPORT.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/VERIFICATION.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/pf-extractor.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/pf-graph-builder.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/pf-inventory.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/pf-judge.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/pf-reconciler.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/pf-simulator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/pf-synthesizer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/pf-verifier.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-adversarial-critic.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-ai-infra-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-architecture-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-aws-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-capacity-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-change-coordinator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-crossplane-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-debate-referee.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-economy-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-evidence-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-federation-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-finops-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-fleet-coordinator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-fleet-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-gitops-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-graph-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-iac-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-incident-coordinator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-kubernetes-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-operations-safety-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-optimization-coordinator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-orchestrator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-planner.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-policy-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-privacy-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-product-coordinator.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-product-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-release-guardian.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-security-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-security-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-sre-specialist.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-task-spec-reviewer.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/agents/platform-verifier.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/config.example.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/contracts/agent-handoff.schema.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/contracts/agent-run.schema.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/contracts/agent-spec.schema.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/contracts/capability.schema.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/contracts/change-event.schema.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/contracts/change-intent.schema.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/contracts/change-plan.schema.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/contracts/collector-receipt.schema.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/contracts/context-pack.schema.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/contracts/debate.schema.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/contracts/distribution-manifest-v1.schema.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/contracts/drift-event.schema.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/contracts/fact.schema.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/contracts/finding.schema.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/contracts/graph-v2.schema.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/contracts/graph.schema.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/contracts/install-receipt-v1.schema.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/contracts/observation.schema.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/contracts/receipt.schema.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/contracts/recommendation.schema.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/contracts/refusal.schema.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/contracts/slo-contract.schema.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/contracts/task-spec.schema.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/contracts/workspace-manifest-v1.schema.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/README.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0001-deterministic-core-first.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0002-graphfy-as-spine.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0003-economy-by-architecture.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0004-planned-provenance.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0005-context-redaction.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0006-rule-provenance.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0007-version-unresolved-semantics.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0008-quality-per-token.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0009-cloud-common-model.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0010-golden-path-model.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0011-observation-model.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0012-collector-boundary.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0013-absence-semantics.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0014-freshness-coverage.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0015-temporal-graphfy.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0016-identity-resolution.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0017-reconciliation-classes.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0018-runtime-edge-semantics.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0019-credential-boundary.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0020-provider-call-economy.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0021-no-arbitrary-shell.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0022-source-of-truth-first.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0023-autonomy-levels.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0024-risk-classes.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0025-approval-hash-binding.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0026-operation-state-machine.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0027-execution-adapter-boundary.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0028-verification-not-command-success.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0029-rollback-semantics.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0030-policy-precedence.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0031-fleet-canonical-model.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0032-org-graphfy-layers.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0033-history-boundaries.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0034-deterministic-baseline-first.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0035-platform-metric-provenance.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0036-optimization-changeintent.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0037-federation-no-credentials.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0038-no-individual-scoring.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0039-ai-platform-boundary.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0040-pluggable-analytics-storage.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0041-canonical-agent-roster.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0042-agents-vs-engines.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0043-coordinator-dispatch-boundary.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0044-verifier-independence.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0045-agent-budget-model.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0046-agent-context-economy.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0047-debate-referee-contract.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0048-host-mirror-generation.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0049-zero-subagent-fallback.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0050-agent-operation-boundary.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0051-fleet-scale-context-policy.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0052-architecture-freeze-policy.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0053-economy-control-plane.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0054-multilayer-cache-invalidation.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0055-context-gateway-as-the-single-context-entry-point.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0056-budgetenvelope-dimensions-and-hard-soft-limits.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0057-checkpoint-and-resume-carry-spend.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0058-observed-vs-estimated-accounting.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0059-declared-provider-pricing.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0060-selective-verification,-not-test-skipping.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0061-agent-fanout-economy.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0062-champion-challenger-routing.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/adr/0063-fleet-context-boundary.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/agents/AGENT_ARCHITECTURE.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/agents/AGENT_OUTPUT_CONTRACT.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/agents/AGENT_PROTOCOL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/agents/AGENT_RISK_MATRIX.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/agents/AGENT_SKILL_MATRIX.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/agents/AGENT_TOOL_MATRIX.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/agents/DEBATE.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/agents/ECONOMY.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/agents/HOST_PARITY.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/agents/ROUTING.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/agents/VERIFICATION.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/assets/logo.png +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle2/ARCHITECTURAL-REVIEW.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle2/FINAL-ECONOMY.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle2/FINAL-MATRIX.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle2/FINAL-QUALITY.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle2/FINAL-REPORT.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle2/FINAL-SECURITY.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle2/NORTH-STAR.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle2.1/BASELINE.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle2.1/CI-VALIDATION.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle2.1/FINAL-MATRIX.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle2.1/VALIDATION-RECEIPT.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle3/BASELINE.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle3/FINAL-REPORT.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle3/PROPOSAL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle3/RESEARCH-LEDGER.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle4/BASELINE.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle4/FINAL-REPORT.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle4/RESEARCH-LEDGER.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle4.1/BASELINE.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle4.1/FINAL-MATRIX.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle4.1/FINAL-REPORT.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle4.1/VALIDATION-RECEIPT.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle5/BASELINE.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle5/ECONOMY-REPORT.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle5/ENTERPRISE-REVIEW.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle5/FINAL-MATRIX.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle5/FINAL-REPORT.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle5/OPTIMIZATION-REPORT.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle5/RESEARCH-LEDGER.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle5/SCALE-BENCHMARKS.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle5/SECURITY-PRIVACY-REVIEW.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle5/VALIDATION-RECEIPT.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle5.1/AGENT-BENCHMARKS.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle5.1/AGENT-MATRIX.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle5.1/AGENTIC-RUNTIME-REPORT.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle5.1/BASELINE.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle5.1/FINAL-MATRIX.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle5.1/FINAL-REPORT.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle5.1/FREEZE-REVIEW.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle5.1/SCALE-BENCHMARKS.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle5.1/SOAK-REPORT.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/cycle5.1/VALIDATION-RECEIPT.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/discovery/forge-audit.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/economy/AGENTIC-ECONOMY.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/economy/ARCHITECTURE.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/economy/BUDGETS.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/economy/CACHE.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/economy/CHECKPOINT-RESUME.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/economy/CONTEXT-GATEWAY.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/economy/PRICING.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/economy/RECONCILIATION.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/economy/ROUTING.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/economy/VERIFICATION-ECONOMY.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/economy-parity/AGENTIC-ECONOMY-REPORT.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/economy-parity/BASELINE.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/economy-parity/BENCHMARKS.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/economy-parity/CACHE-REPORT.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/economy-parity/ECONOMY-BENCHMARKS.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/economy-parity/FINAL-MATRIX.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/economy-parity/FINAL-REPORT.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/economy-parity/GAP-MATRIX.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/economy-parity/POLISH-BASELINE.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/economy.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/engineering-excellence/fitness-and-gates.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/experience/accessibility.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/experience/automation-mode.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/experience/fase4-report.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/experience/installation-wizard.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/experience/interactive-cli.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/experience/themes.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/AGENTIC-RECEIPT.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/ARCHITECTURE-FREEZE-REVIEW.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/DOGFOOD.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/FINAL-MATRIX.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/FINAL-REPORT.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/FREEZE-MANIFEST.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/KNOWLEDGE-REVIEW.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/LICENSE-INVENTORY.txt +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/LIFECYCLE.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/PERFORMANCE-BASELINE.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/PERFORMANCE-RECEIPT.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/README.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/REAL-WORLD-ISSUES.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/RELEASE-HARDENING.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/SBOM.cdx.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/SECURITY-REVIEW.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/SOAK-RECEIPT.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/UNFREEZE-RFC.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/VALIDATION-RECEIPT.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/dogfood/api-collect.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/dogfood/api-inspect.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/dogfood/context-audit.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/dogfood/route-audit.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/dogfood/self-analyze-iac.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/dogfood/self-analyze-k8s.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/dogfood/self-analyze-secrets.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/dogfood/self-collect.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/dogfood/self-graph.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/dogfood/self-inspect.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/dogfood/spark-collect.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/dogfood/spark-inspect.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/exceptions/FE-000-template.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/exceptions/FE-001.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/exceptions/FE-002.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/exceptions/FE-003.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/exceptions/FE-004.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/rfc/RFC-ECONOMY-UNFREEZE.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/rfc/RFC-PORTABLE-DISTRIBUTION.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/snapshots/agents.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/snapshots/capabilities.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/snapshots/cli.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/snapshots/knowledge.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/snapshots/mcp.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/freeze/snapshots/schemas.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/installation/account-installation.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/installation/claude-code.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/installation/codex-cli.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/installation/copilot-cli.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/installation/devin-cli.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/installation/global-installation.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/installation/mcp.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/installation/portable-installation.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/installation/quickstart.en.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/installation/quickstart.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/installation/troubleshooting.en.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/installation/troubleshooting.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/installation/uninstall.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/installation/update-and-repair.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/installation/workspace-installation.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/knowledge-program/broken-link-report.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/knowledge-program/command-drift-report.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/knowledge-program/documentation-quality-report.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/knowledge-program/duplicate-content-report.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/knowledge-program/final-report.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/knowledge-program/obsolete-document-report.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/knowledge-program/pipeline.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/knowledge-program/semantic-review-ledger.jsonl +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/knowledge-program/tutorial-coverage-report.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/learn/README.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/learn/recipes/cicd.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/learn/recipes/custos.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/learn/recipes/graph-deps.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/learn/recipes/graph-studio.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/learn/recipes/hosts.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/learn/recipes/impacto-blast.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/learn/recipes/inspect-repo.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/learn/recipes/judge-policy.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/learn/recipes/kubernetes.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/learn/recipes/seguranca.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/learn/recipes/sre.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/learn/recipes/terraform.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/learn/recipes/usar-agents.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/learn/recipes/usar-skills.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/learn/recipes/verificar-mcp.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/portable/ARCHITECTURE.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/portable/FINAL-MATRIX.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/portable/FINAL-REPORT.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/portable/INSTALL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/portable/OFFLINE.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/portable/WORKSPACES.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/reference/agents.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/reference/command-rationale.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/reference/commands.generated.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/reference/commands.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/reference/divergence.generated.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/reference/skills.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/releasing/pypi-patch-plan.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/reports/experience-3.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/docs/tutorials/first-run.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/agent-budget-exhaustion/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/agent-conflicting-specialists/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/agent-fleet-optimization/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/agent-host-no-subagents/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/agent-incident-multi/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/agent-missing-evidence/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/agent-multi-domain-audit/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/agent-production-change/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/agent-security-mandatory/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/agent-simple-iac/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/approval-integrity-seal/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/capacity-hot/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/capacity-hot/fixture/capacity.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/catalog-noowner/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/catalog-noowner/fixture/catalog-info.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/contract-fact/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/contract-fact/fixture/doc.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/cosign-unverified/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/cosign-unverified/fixture/sig.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/expected-delta-refusal/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/finops-noattr/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/finops-noattr/fixture/costs.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/fleet-inv-absent-allocation-unknown/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/fleet-inv-centrality-not-criticality/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/fleet-inv-correlation-not-causality/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/fleet-inv-dx-no-person-metrics/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/fleet-inv-federation-restricted-denied/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/fleet-inv-federation-secret-denied/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/fleet-inv-history-window-deterministic/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/fleet-inv-low-util-not-deletable/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/fleet-inv-member-key-deterministic/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/fleet-inv-missing-denominator/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/fleet-inv-partial-coverage-visible/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/fleet-inv-plan-changeintent-only/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/fleet-inv-report-all-cited/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/fleet-inv-small-sample-confidence/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/fleet-inv-uncertain-optimization-suppressed/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/gha-dangerous/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/gha-dangerous/fixture/.github/workflows/ci.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/gitops-v2/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/gitops-v2/fixture/argo.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/graph-k8s-blast/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/graph-k8s-blast/fixture/deploy.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/iac-module-nopin/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/iac-module-nopin/fixture/main.tf +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/iac-plan-replace/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/iac-plan-replace/fixture/plan.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/iac-sg-open/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/iac-sg-open/fixture/main.tf +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/iam-oidc/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/iam-oidc/fixture/policy.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/iam-wildcard-positive/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/iam-wildcard-positive/fixture/policy.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/k8s-bad-actor/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/k8s-bad-actor/fixture/app.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/k8s-beta-api/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/k8s-beta-api/fixture/cr.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/k8s-dep-api-boundary/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/k8s-dep-api-boundary/fixture/app.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/k8s-dep-api-clean/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/k8s-dep-api-clean/fixture/app.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/k8s-dep-api-unknown/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/k8s-dep-api-unknown/fixture/app.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/k8s-dep-api-v120/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/k8s-dep-api-v120/fixture/app.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/k8s-dep-api-v129/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/k8s-dep-api-v129/fixture/app.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/k8s-hpa-noreq/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/k8s-hpa-noreq/fixture/app.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/k8s-limits-boundary/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/k8s-limits-boundary/fixture/app.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/k8s-limits-negative/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/k8s-limits-negative/fixture/deploy.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/k8s-limits-positive/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/k8s-limits-positive/fixture/deploy.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/k8s-nopdb/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/k8s-nopdb/fixture/app.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/knowledge-registry/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/kyverno-dep/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/kyverno-dep/fixture/pol.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/kyverno-legacy/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/kyverno-legacy/fixture/pol.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-aws-collect/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-aws-collect/fixture/aws/ec2_describe-vpcs.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-aws-collect/fixture/aws/iam_list-users.denied.txt +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-aws-collect/fixture/aws/sts_get-caller-identity.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-drift/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-drift/fixture/after.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-drift/fixture/before.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-incident/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-incident/fixture/changes.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-incident/fixture/incident.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-k8s-collect/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-k8s-collect/fixture/kubectl/get_configmaps.denied.txt +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-k8s-collect/fixture/kubectl/get_deployments.apps.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-k8s-collect/fixture/kubectl/get_pods.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-k8s-collect/fixture/kubectl/get_secrets.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-multicluster/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-multicluster/fixture/clusters.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-plan/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-plan/fixture/drift.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-reconcile/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-reconcile/fixture/desired.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-reconcile/fixture/observed.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-secrets-boundary/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-secrets-boundary/fixture/envelope.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-temporal-graph/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/live-temporal-graph/fixture/graph.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/ops-approval/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/ops-convergence/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/ops-execution-safety/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/ops-intent/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/ops-planning/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/ops-policy/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/ops-rollback/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/ops-verification/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/rollback-argocd-revision/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/rollback-blind-inverse/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/rollback-git-commit/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/rollback-impossible/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/rollback-k8s-annotation-restore/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/rollback-k8s-scale/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/rollback-material-tamper/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/rollback-terraform-replan/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/rollback-unknown/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/routing-specialist/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/rtk-roundtrip/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/rtk-roundtrip/fixture/verbose.txt +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/sbom-vuln/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/sbom-vuln/fixture/sbom.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/secret-prose-mixed/fixture/app.env +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/secret-prose-mixed/fixture/policy-notes.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/secrets-noleak/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/secrets-noleak/fixture/app.env +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/slo-fastburn/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/slo-fastburn/fixture/events.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/slo-fastburn/fixture/slo.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/slo-noinput/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/slo-noinput/fixture/events.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/slo-noinput/fixture/slo.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/sot-conflict/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/token-budget/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/token-budget/fixture/big.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/xr-delete/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/xr-delete/fixture/xr.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/xr-graph-chain/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/xr-graph-chain/fixture/xrd.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/xr-negative-crd/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/xr-negative-crd/fixture/widget.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/xr-upbound-mr/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/cases/xr-upbound-mr/fixture/bucket.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/qpt-bench/change-review/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/qpt-bench/change-review/fixture/plan.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/qpt-bench/gha-security/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/qpt-bench/gha-security/fixture/ci.yml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/qpt-bench/iam-investigate/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/qpt-bench/iam-investigate/fixture/policy.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/qpt-bench/incident-analysis/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/qpt-bench/incident-analysis/fixture/query.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/qpt-bench/incident-analysis/fixture/rules.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/qpt-bench/k8s-review/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/qpt-bench/k8s-review/fixture/deploy.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/qpt-bench/tf-security/case.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/evals/qpt-bench/tf-security/fixture/main.tf +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/factory/specs/archive/2026/cyc9-07-scenarios-platform.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/forge.agentic.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/forge.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/install.ps1 +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/install.sh +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/install.windows.sh +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/knowledge/aws/eks.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/knowledge/aws/iam.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/knowledge/aws/network-exposure.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/knowledge/aws/organizations.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/knowledge/crossplane/composition-providers.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/knowledge/crossplane/managed-resources.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/knowledge/crossplane/v1-v2.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/knowledge/kubernetes/api-deprecations.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/knowledge/kubernetes/autoscaling-rbac.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/knowledge/kubernetes/gateway-api.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/knowledge/kubernetes/pod-security.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/knowledge/sources.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/knowledge/terraform/lifecycle.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/knowledge/terraform/plan-semantics.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/chaos-pod-kill/chaos.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/chaos-pod-kill/facts.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/fleets/acme/capacity.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/fleets/acme/costs.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/fleets/acme/events.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/fleets/acme/fleet.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/fleets/acme/graph.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/fleets/acme/policies.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/fleets/acme/requests.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/argo-bad-rollout/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/argo-bad-rollout/fixture/app.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/aws-dump/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/aws-dump/fixture/compute.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/aws-dump/fixture/iam.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/aws-dump/fixture/network.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/aws-dump/fixture/org.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/aws-dump/fixture/storage.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/container-unsigned/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/container-unsigned/fixture/supply.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/cost-idle-workload/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/cost-idle-workload/fixture/costs.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/crossplane-platform/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/crossplane-platform/fixture/negative.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/crossplane-platform/fixture/xrd.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/demo-platform/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/demo-platform/fixture/.github/workflows/ci.yml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/demo-platform/fixture/deploy.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/demo-platform/fixture/infra.tf +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/fleet-ai/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/fleet-capacity/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/fleet-cost/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/fleet-federation/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/fleet-golden-path/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/fleet-op-hotspot/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/fleet-ownership/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/fleet-partial/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/fleet-policy-friction/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/fleet-recurring-incident/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/fleet-report/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/fleet-risk/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/gitops-drift/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/gitops-drift/fixture/app.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/k8s-bad-readiness/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/k8s-bad-readiness/fixture/deploy.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/k8s-bad-readiness/fixture/netpol.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/k8s-missing-limits/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/k8s-missing-limits/fixture/deploy.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/k8s-missing-limits/fixture/netpol.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/k8s-single-replica/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/k8s-single-replica/fixture/deploy.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/k8s-single-replica/fixture/netpol.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/live-aws-collect/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/live-aws-collect/fixture/aws/ec2_describe-vpcs.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/live-aws-collect/fixture/aws/iam_list-users.denied.txt +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/live-aws-collect/fixture/aws/sts_get-caller-identity.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/live-k8s-collect/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/live-k8s-collect/fixture/kubectl/get_configmaps.denied.txt +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/live-k8s-collect/fixture/kubectl/get_deployments.apps.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/live-k8s-collect/fixture/kubectl/get_pods.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/live-k8s-collect/fixture/kubectl/get_secrets.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/live-kind/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/live-kind/fixture/kubectl/get_configmaps.denied.txt +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/live-kind/fixture/kubectl/get_deployments.apps.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/live-kind/fixture/kubectl/get_pods.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/live-kind/fixture/kubectl/get_secrets.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/network-policy-missing/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/network-policy-missing/fixture/deploy.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-bad-rollout/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-bad-rollout/fixture/ops.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-break-glass/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-break-glass/fixture/ops.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-broken-selector/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-broken-selector/fixture/ops.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-changed-plan-hash/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-changed-plan-hash/fixture/ops.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-conflicting-operation/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-conflicting-operation/fixture/ops.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-expired-approval/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-expired-approval/fixture/ops.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-partial-failure/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-partial-failure/fixture/ops.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-policy-denial/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-policy-denial/fixture/ops.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-replica-drift/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-replica-drift/fixture/ops.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-rollback-annotate/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-rollback-annotate/fixture/ops.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-rollback-gitops/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-rollback-gitops/fixture/ops.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-rollback-impossible/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-rollback-impossible/fixture/ops.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-rollback-scale/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-rollback-scale/fixture/ops.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-rollback-terraform/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-rollback-terraform/fixture/ops.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-rollback-terraform/fixture/tf/tfplan.bin +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-stale-observation/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/ops-stale-observation/fixture/ops.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/secret-exposure/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/secret-exposure/fixture/app.env +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/slo-burn/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/slo-burn/fixture/events.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/slo-burn/fixture/slo.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/terraform-iam-wildcard/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/terraform-iam-wildcard/fixture/policy.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/terraform-public-bucket/expected.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/lab/scenarios/terraform-public-bucket/fixture/main.tf +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/__main__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/_forge_portal.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/_graphstudio.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/_graphview.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/_portal_telemetry.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/agents/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/agents/bench.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/agents/contextpack.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/agents/contracts.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/agents/coordinators.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/agents/critic.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/agents/debate.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/agents/executors.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/agents/guardian.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/agents/mirrors.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/agents/orchestrator.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/agents/planner.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/agents/playbook.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/agents/referee.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/agents/reviewers.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/agents/roster.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/agents/runledger.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/agents/runstore.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/agents/specialists.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/agents/taskspec.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/agents/uniqueness.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/agents/verifier.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/aiplat/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/aiplat/models.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/analytics/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/analytics/capacity.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/analytics/debt.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/analytics/dx.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/analytics/finops_v4.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/analytics/goldenpath.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/analytics/history.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/analytics/measurement.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/analytics/models.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/analytics/opsanalytics.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/analytics/policyintel.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/analytics/reliability.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/analytics/soak.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/analytics/store.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/bench.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/cases/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/cases/casefile.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/cases/context_audit.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/cases/ledgers.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/cases/replay.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/cases/routing_audit.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/caveman/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/caveman/compress.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/cicd/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/cicd/backstage.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/cicd/dockerfile.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/cicd/github_actions.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/cicd/gitlab_ci.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/cicd/gitops.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/cli/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/cli/fleetcmd.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/cloud/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/cloud/aws.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/cloud/common.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/cloud/multicloud.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/collect/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/collect/detect.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/context/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/context/capsule.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/context/gateway.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/context/refs.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/context/sufficiency.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/core/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/core/hashing.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/core/ownership.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/core/receipts.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/core/redaction.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/core/store.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/core/workspace.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/data/portable_skills/platformforge-agents/SKILL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/data/portable_skills/platformforge-change/SKILL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/data/portable_skills/platformforge-core/SKILL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/data/portable_skills/platformforge-economy/SKILL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/data/portable_skills/platformforge-finops/SKILL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/data/portable_skills/platformforge-fleet/SKILL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/data/portable_skills/platformforge-governance/SKILL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/data/portable_skills/platformforge-graph/SKILL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/data/portable_skills/platformforge-lab/SKILL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/data/portable_skills/platformforge-sdd/SKILL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/data/portable_skills/platformforge-security/SKILL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/data/portable_skills/platformforge-sre/SKILL.md +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/diagnose/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/distribution/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/distribution/bundle.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/distribution/hostflow.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/distribution/models.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/distribution/service.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/economy/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/economy/bench.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/economy/budget.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/economy/cache.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/economy/checkpoint.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/economy/collection.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/economy/doctor.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/economy/engine.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/economy/envelope.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/economy/fleetpack.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/economy/ledger.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/economy/plan.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/economy/pricing.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/economy/qpt.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/economy/reconcile.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/economy/verifyplan.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/economy/waste.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/evals/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/evals/coverage.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/evals/fleet_invariants.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/evals/ops_invariants.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/evals/runner.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/federation/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/federation/node.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/finops/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/finops/alloc.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/finops/costs.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/finops/focus.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/finops/graph_cost.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/finops/ingest.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/finops/insights.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/finops/unit.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/fleet/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/fleet/loader.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/fleet/models.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/fleet/orggraph.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/fleet/query.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/forge/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/forge/collect.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/forge/delegate.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/forge/manifest.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/freeze/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/freeze/exceptions.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/freeze/manifest.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/freeze/snapshots.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/graph/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/graph/backend.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/graph/bench.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/graph/build.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/graph/delivery.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/graph/diff.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/graph/events.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/graph/migrate.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/graph/model.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/graph/persist.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/graph/query.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/graph/temporal.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/graph/vocab.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/graphview.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/iac/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/iac/drift.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/iac/plan.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/iac/terraform.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/install/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/k8s/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/k8s/helm.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/k8s/hubble.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/k8s/manifests.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/knowledge/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/knowledge/packs.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/knowledge/registry.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/knowledge/select.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/lab/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/lab/chaos.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/lab/fleetlab.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/lab/opslab.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/lab/runner.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/live/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/live/budget.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/live/capability.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/live/collectors/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/live/collectors/aws.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/live/collectors/aws_transport.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/live/collectors/k8s.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/live/collectors/k8s_transport.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/live/cursors.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/live/drift.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/live/envelope.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/live/federation.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/live/fixtures.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/live/identity.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/live/incident.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/live/models.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/live/reconcile.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/live/remediate.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/live/store.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/live/topology.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/mcp/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/mcp/registry.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/mcp/server.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/mcp/tools.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/models/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/models/base.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/observe/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/observe/capacity.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/observe/dr.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/observe/grafana.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/observe/incident.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/observe/otel.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/observe/postmortem.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/observe/prometheus.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/observe/slo.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/actions.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/analytics.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/approval.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/autorem.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/config.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/engine.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/envelope.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/executors/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/executors/base.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/executors/git.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/executors/gitops.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/executors/terraform.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/gates.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/goldenpath.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/material.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/models.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/operation.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/opgraph.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/policy.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/preconditions.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/registry.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/risk.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/rollback.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/rollback_builders.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/runbook.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/simulate.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/source_of_truth.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/store.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ops/verify.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/optimize/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/optimize/engine.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/optimize/models.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/optimize/scan.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/plan/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/portable_cli.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/portal_adapter.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/product/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/product/backstage.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/product/catalog.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/product/crossplane.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/product/golden_paths/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/product/golden_paths/engine.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/product/golden_paths/library.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/product/golden_paths/model.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/product/maturity.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/product/scorecards.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/resources.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/risk/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/risk/engine.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/risk/signals.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/routing/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/routing/decision.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/routing/router.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/rtk/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/rtk/compact.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/rtk/parsers.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/rules/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/rules/engine.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/sandbox/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/sandbox/env.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/sandbox/review.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/sdd/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/sdd/lifecycle.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/security/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/security/cosign.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/security/iam.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/security/identity.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/security/kyverno.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/security/sbom.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/security/scan.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/security/slsa.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/security/supply.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/tokensave/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/tokensave/budget.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/tokensave/estimate.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/tokensave/index.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/tokensave/ledger.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/tokensave/packs.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ui/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ui/app.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ui/home.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ui/i18n.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ui/kit.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ui/screen.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ui/tui.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/ui/wizard.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/workspace/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/workspace/models.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/platformforge/workspace/service.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-6_bITucK.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-B5AB8czV.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-BJbNCJrv.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-BWjIRvH1.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-BXk7RxGM.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-BYYLUO5t.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-BYc3t4cg.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-BglFR9Wn.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-Bj5_93Ey.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-Bkokxnl9.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-BnZq9uBz.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-BpIbIo4H.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-C-R9EDEw.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-C0nXO1-7.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-C1jICkBx.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-C2Vik-mF.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-C6ri1BES.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-C8bgMzTS.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-CV7TSqiz.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-CWCQmMmw.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-CZreZLNQ.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-CaHx1phd.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-Cp1ysZIS.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-CzfElE0B.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-D-7Jr8A3.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-D-GKcz1x.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-D0sdF23X.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-D4e-ThVc.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-DAuZ25Se.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-DNdMiBOi.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-Df-i8acd.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-DiTrvQme.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-DuZy_X7l.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-E37BkvkU.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-RSTfWegd.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-SeIyT7eK.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-Wd_5yY1t.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-mfSjBx6W.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-tc9WQav2.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-vIImL6Fw.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-yM6DMc_W.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/chunk-yaTNqnhj.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/favicon.ico +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/index.html +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/main-YKFPUKID.js +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/assets/styles-B6ZRGG3C.css +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/portal/manifest.json +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/rules/catalog/finops.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/rules/catalog/gitops.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/rules/catalog/iac.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/rules/catalog/k8s.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/rules/catalog/orchestration.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/rules/catalog/product.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/rules/catalog/routing.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/rules/catalog/security.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/rules/catalog/sre.yaml +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/scripts/bench_economy.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/scripts/docs/check_docs.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/scripts/docs/doc_catalogs.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/scripts/docs/doc_index.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/scripts/docs/doc_inventory.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/scripts/docs/doc_manifest.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/scripts/docs/doc_reference.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/scripts/docs/final_report.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/scripts/docs/regen_docs.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/scripts/freeze_perf_receipt.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/scripts/freeze_soak_receipt.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/scripts/freeze_validation_receipt.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/scripts/gen_cli_surface.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/scripts/lab/platformforge_lab.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/scripts/validate.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/setup.ps1 +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/setup.sh +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/__init__.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_agent_adversarial.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_agent_budget.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_agent_debate.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_agent_economy.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_agent_handoffs.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_agent_mirrors.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_agent_protocol.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_agent_routing.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_agents.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_cases.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_cicd.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_cli_ops.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_cloud.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_command_rationale.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_coordinators.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_core.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_crossplane.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_cycle5_analytics.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_cycle5_hardening.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_doc_drift.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_doc_manifest.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_docs_drift.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_economy.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_economy_agents_waste.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_economy_cache.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_economy_closure.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_economy_contracts.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_economy_evals.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_economy_fleet_qpt.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_economy_gateway.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_economy_pricing_verify.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_economy_v2.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_executors.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_federation.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_finops.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_fleet.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_fleet_adversarial.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_forge.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_freeze.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_graph.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_graph_v2.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_hardening.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_hosts_flow.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_iac.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_k8s.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_k8s_depth.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_knowledge_packs.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_lab.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_ledgers.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_live_aws.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_live_capability.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_live_drift.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_live_identity.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_live_incident.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_live_k8s.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_live_remediate.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_live_security_props.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_missing_input_refusals.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_observation.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_observe.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_observe_v2.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_offline.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_ops_adversarial41.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_ops_approval.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_ops_autorem.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_ops_executors.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_ops_gapwave.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_ops_goldenpath.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_ops_hardening.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_ops_models.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_ops_operation.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_ops_opgraph.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_ops_pipeline.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_ops_policy.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_ops_property.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_ops_risk.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_ops_rollback.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_ops_runbook.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_ops_runbook41.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_ops_verify.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_orchestrator.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_portable_distribution.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_portable_workspace.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_portal_adapter.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_product.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_product_v2.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_qpt_v2.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_reconcile.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_redaction.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_reviewers.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_routing_audit.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_sdd.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_security.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_soak.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_specialists.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_surface.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_topology.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_truth.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_ui_resilience.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_ui_tui.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_wave_h.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_wave_k.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_wave_l.py +0 -0
- {platformforge-0.1.6 → platformforge-0.2.1}/tests/test_wave_n.py +0 -0
|
@@ -22,3 +22,8 @@ graphify-out/
|
|
|
22
22
|
/config.yaml
|
|
23
23
|
factory/runs/*
|
|
24
24
|
.forge/
|
|
25
|
+
|
|
26
|
+
# Dev-tool caches / local MCP secrets — .git/info/exclude does NOT reach
|
|
27
|
+
# hatchling VCS-aware sdist; must live here or it ships in published sdists.
|
|
28
|
+
.tokensave/
|
|
29
|
+
.devin/mcp_config.local.json
|
|
@@ -1,6 +1,29 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
3
|
All notable changes. Format: wave/feature, the "why", key commits.
|
|
4
|
+
## [0.2.1] - 2026-10-22
|
|
5
|
+
|
|
6
|
+
### Fixed
|
|
7
|
+
|
|
8
|
+
- `_forgecontext` v1.3.2: non-UTF-8 consumer docs (AGENTS.md / CLAUDE.md /
|
|
9
|
+
AGENT_PROTOCOL.md) now refuse with named `FORGE-CONTEXT-CONFLICT` on
|
|
10
|
+
install and uninstall — never a bare `UnicodeDecodeError` mid-write.
|
|
11
|
+
|
|
12
|
+
## [0.2.0] - 2026-10-22
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- Install 2.0: `forge-context/v1` registry integration, transactional
|
|
17
|
+
install/uninstall via vendored `_forgecontext` v1.3.1, consumer-doc managed
|
|
18
|
+
blocks, evals classification, `qualified_ids` + `route()` support.
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- `_txn_restore` journal path validation; interrupt-safe rollback;
|
|
23
|
+
stale-lock `created_at` fallback (Windows); vendored `_installkit` v1.0.2 +
|
|
24
|
+
`forge_bootstrap` v1.1.1 security backports (userinfo redaction, argv trim,
|
|
25
|
+
empty-stdout smoke).
|
|
26
|
+
|
|
4
27
|
## [0.1.5] - 2026-10-21
|
|
5
28
|
|
|
6
29
|
### Changed
|
|
@@ -35,6 +58,7 @@ All notable changes. Format: wave/feature, the "why", key commits.
|
|
|
35
58
|
- Portal vendored 2.1 final (Cycles 0-6)
|
|
36
59
|
|
|
37
60
|
## [Unreleased]
|
|
61
|
+
|
|
38
62
|
## [0.1.6] - 2026-10-21
|
|
39
63
|
|
|
40
64
|
### Changed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: platformforge
|
|
3
|
-
Version: 0.1
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: Agentic Platform Engineering intelligence platform — deterministic, offline-first, evidence-first
|
|
5
5
|
Project-URL: Homepage, https://github.com/EdgarSocrates98/platform-forge
|
|
6
6
|
Project-URL: Repository, https://github.com/EdgarSocrates98/platform-forge
|
|
@@ -83,6 +83,11 @@ Global flags on every verb: `--json` · `--output <file>` ·
|
|
|
83
83
|
- `cache invalidate`
|
|
84
84
|
- `cache stats`
|
|
85
85
|
|
|
86
|
+
## `capabilities`
|
|
87
|
+
|
|
88
|
+
- `capabilities`
|
|
89
|
+
`--repo <v> — workspace/repo root (default '.')`
|
|
90
|
+
|
|
86
91
|
## `capability`
|
|
87
92
|
|
|
88
93
|
- `capability`
|
|
@@ -130,7 +135,7 @@ Global flags on every verb: `--json` · `--output <file>` ·
|
|
|
130
135
|
## `context`
|
|
131
136
|
|
|
132
137
|
- `context`
|
|
133
|
-
`--repo <v> — workspace/repo root (default '.')` · `--task <v> (default '')` · `--input-budget <v>` · `--changed <v>` · `--scope <v> (default 'repository')` · `--budget-bytes <v>` · `--essential-bytes <v>` · `--required <v>` · `--role <v> (default 'specialist')` · `--facts <v> (default '')` · `--findings <v> (default '')` · `--rules <v>` · `--knowledge <v>` · `--graph-refs <v>` · `--questions <v>` · `--ref <v> (default '')` · `--section <v> (default '')`
|
|
138
|
+
`--repo <v> — workspace/repo root (default '.')` · `--task <v> (default '')` · `--input-budget <v>` · `--changed <v>` · `--scope <v> (default 'repository')` · `--budget-bytes <v>` · `--essential-bytes <v>` · `--required <v>` · `--role <v> (default 'specialist')` · `--facts <v> (default '')` · `--findings <v> (default '')` · `--rules <v>` · `--knowledge <v>` · `--domain <v> — §6.2 domain pack (lf-0037) (default '')` · `--rules-limit <v>` · `--knowledge-limit <v>` · `--graph-refs <v>` · `--questions <v>` · `--ref <v> (default '')` · `--section <v> (default '')`
|
|
134
139
|
- `context capsule`
|
|
135
140
|
- `context delta`
|
|
136
141
|
- `context expand`
|
|
@@ -181,10 +186,12 @@ Global flags on every verb: `--json` · `--output <file>` ·
|
|
|
181
186
|
## `evals`
|
|
182
187
|
|
|
183
188
|
- `evals`
|
|
184
|
-
`--repo <v> — workspace/repo root (default '.')` · `--type <v> (default '')` · `--cases <v> (default '')`
|
|
189
|
+
`--repo <v> — workspace/repo root (default '.')` · `--type <v> (default '')` · `--cases <v> (default '')` · `--suite <v> (default '')` · `--run <v> (default '')` · `--classified`
|
|
185
190
|
- `evals coverage`
|
|
191
|
+
- `evals describe`
|
|
186
192
|
- `evals list`
|
|
187
193
|
- `evals precision`
|
|
194
|
+
- `evals result`
|
|
188
195
|
- `evals run`
|
|
189
196
|
|
|
190
197
|
## `explain`
|
|
@@ -323,12 +330,14 @@ Global flags on every verb: `--json` · `--output <file>` ·
|
|
|
323
330
|
|
|
324
331
|
## `knowledge`
|
|
325
332
|
|
|
326
|
-
- `knowledge`
|
|
327
|
-
`--repo <v> — workspace/repo root (default '.')`
|
|
333
|
+
- `knowledge` <term_or_file> (default '')
|
|
334
|
+
`--repo <v> — workspace/repo root (default '.')` · `--domain <v> (default '')` · `--limit <v>` · `--cursor <v>`
|
|
328
335
|
- `knowledge check`
|
|
329
336
|
- `knowledge contract`
|
|
330
337
|
- `knowledge drift`
|
|
338
|
+
- `knowledge get`
|
|
331
339
|
- `knowledge packs`
|
|
340
|
+
- `knowledge search`
|
|
332
341
|
|
|
333
342
|
## `lab`
|
|
334
343
|
|
|
@@ -425,9 +434,11 @@ Global flags on every verb: `--json` · `--output <file>` ·
|
|
|
425
434
|
## `policy`
|
|
426
435
|
|
|
427
436
|
- `policy` <path> (default '')
|
|
428
|
-
`--repo <v> — workspace/repo root (default '.')`
|
|
437
|
+
`--repo <v> — workspace/repo root (default '.')` · `--query <v>` · `--domain <v>` · `--severity <v>` · `--limit <v>` · `--cursor <v>`
|
|
429
438
|
- `policy check`
|
|
439
|
+
- `policy get`
|
|
430
440
|
- `policy list`
|
|
441
|
+
- `policy search`
|
|
431
442
|
|
|
432
443
|
## `portable`
|
|
433
444
|
|
|
@@ -73,6 +73,7 @@ _Task-oriented guides and workflows._
|
|
|
73
73
|
- [RUNTIME-TOPOLOGY — observed edges](../RUNTIME-TOPOLOGY.md)
|
|
74
74
|
- [SECURITY — defensive platform analysis & the redaction boundary](../SECURITY.md)
|
|
75
75
|
- [SOURCES — provenance & clean-room registry](../SOURCES.md)
|
|
76
|
+
- [Suporte](../SUPPORT.md)
|
|
76
77
|
- [VERIFICATION — observed evidence, never exit codes (Cycle 4 + 4.1)](../VERIFICATION.md)
|
|
77
78
|
|
|
78
79
|
### docs/
|
|
@@ -87,8 +88,13 @@ _Task-oriented guides and workflows._
|
|
|
87
88
|
|
|
88
89
|
- [docs/freeze/ — Architecture Freeze](freeze/README.md)
|
|
89
90
|
|
|
91
|
+
### install/
|
|
92
|
+
|
|
93
|
+
- [Distribution parity — Platform Forge](install/DISTRIBUTION_PARITY.md)
|
|
94
|
+
|
|
90
95
|
### installation/
|
|
91
96
|
|
|
97
|
+
- [Account-scoped installation](installation/account-installation.md)
|
|
92
98
|
- [platform-forge + Claude Code](installation/claude-code.md)
|
|
93
99
|
- [platform-forge + Codex CLI](installation/codex-cli.md)
|
|
94
100
|
- [platform-forge + GitHub Copilot CLI](installation/copilot-cli.md)
|
|
@@ -299,6 +305,10 @@ _Historical, deprecated, generated and evidence docs (preserved, not entry point
|
|
|
299
305
|
- [Routing](agents/ROUTING.md) `UNKNOWN`
|
|
300
306
|
- [Verification](agents/VERIFICATION.md) `UNKNOWN`
|
|
301
307
|
|
|
308
|
+
### audits/
|
|
309
|
+
|
|
310
|
+
- [FORGE_CONTEXT_BASELINE — platform-forge](audits/FORGE_CONTEXT_BASELINE.md) `UNKNOWN`
|
|
311
|
+
|
|
302
312
|
### cycle2/
|
|
303
313
|
|
|
304
314
|
- [CYCLE 2 — FINAL ARCHITECTURAL REVIEW (§190)](cycle2/ARCHITECTURAL-REVIEW.md) `UNKNOWN`
|
|
@@ -367,6 +377,7 @@ _Historical, deprecated, generated and evidence docs (preserved, not entry point
|
|
|
367
377
|
|
|
368
378
|
- [CLI SURFACE — generated reference](CLI-SURFACE.md) `UNKNOWN`
|
|
369
379
|
- [Economia de tokens e contexto — Platform Forge](economy.md) `UNKNOWN`
|
|
380
|
+
- [Evals taxonomy — install-2.0 §7 (lf-0038)](evals-taxonomy.md) `UNKNOWN`
|
|
370
381
|
|
|
371
382
|
### economy/
|
|
372
383
|
|
|
@@ -391,6 +402,10 @@ _Historical, deprecated, generated and evidence docs (preserved, not entry point
|
|
|
391
402
|
- [Comparative Gap Matrix — §5](economy-parity/GAP-MATRIX.md) `UNKNOWN`
|
|
392
403
|
- [Economy Closure Polish — Baseline Audit (prompt_evo_polish §2)](economy-parity/POLISH-BASELINE.md) `UNKNOWN`
|
|
393
404
|
|
|
405
|
+
### engineering-excellence/
|
|
406
|
+
|
|
407
|
+
- [Engineering Excellence — Platform Fitness](engineering-excellence/fitness-and-gates.md) `UNKNOWN`
|
|
408
|
+
|
|
394
409
|
### evals/
|
|
395
410
|
|
|
396
411
|
- [Password rotation policy](../evals/cases/secret-prose-mixed/fixture/policy-notes.md) `UNKNOWN`
|
|
@@ -403,6 +418,10 @@ _Historical, deprecated, generated and evidence docs (preserved, not entry point
|
|
|
403
418
|
- [Interactive CLI](experience/interactive-cli.md) `UNKNOWN`
|
|
404
419
|
- [Themes and visual identity](experience/themes.md) `UNKNOWN`
|
|
405
420
|
|
|
421
|
+
### factory/
|
|
422
|
+
|
|
423
|
+
- [Cenários Forge Lab — Platform Engineering](../factory/specs/archive/2026/cyc9-07-scenarios-platform.md) `HISTORICAL`
|
|
424
|
+
|
|
406
425
|
### freeze/
|
|
407
426
|
|
|
408
427
|
- [DOGFOOD receipts — Phase H (§43–§51)](freeze/DOGFOOD.md) `UNKNOWN`
|
|
@@ -418,6 +437,8 @@ _Historical, deprecated, generated and evidence docs (preserved, not entry point
|
|
|
418
437
|
- [UNFREEZE RFC — Economy Control Plane (prompt_evo_economy.md)](freeze/rfc/RFC-ECONOMY-UNFREEZE.md) `UNKNOWN`
|
|
419
438
|
- [RFC — Portable Distribution Unfreeze (FE-003)](freeze/rfc/RFC-PORTABLE-DISTRIBUTION.md) `UNKNOWN`
|
|
420
439
|
|
|
440
|
+
|
|
441
|
+
|
|
421
442
|
### knowledge-program/
|
|
422
443
|
|
|
423
444
|
- [Broken link report](knowledge-program/broken-link-report.md) `UNKNOWN`
|
|
@@ -434,6 +455,10 @@ _Historical, deprecated, generated and evidence docs (preserved, not entry point
|
|
|
434
455
|
- [Offline bundles](portable/OFFLINE.md) `UNKNOWN`
|
|
435
456
|
- [Workspaces](portable/WORKSPACES.md) `UNKNOWN`
|
|
436
457
|
|
|
458
|
+
### releasing/
|
|
459
|
+
|
|
460
|
+
- [PyPI patch plan — platformforge](releasing/pypi-patch-plan.md) `UNKNOWN`
|
|
461
|
+
|
|
437
462
|
### reports/
|
|
438
463
|
|
|
439
464
|
- [Forge Experience 3.0 — report](reports/experience-3.md) `RELEASE_REPORT`
|
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
# FORGE_CONTEXT_BASELINE — platform-forge
|
|
2
|
+
|
|
3
|
+
Auditoria do Ciclo 1 (spec `lf-0034`, prompt-fonte `prompt_evo_install2.0.md` §0–§3).
|
|
4
|
+
Escopo: somente evidência — todo achado cita o comando que o produziu ou o
|
|
5
|
+
arquivo/linha que o sustenta. Nada foi preenchido por suposição.
|
|
6
|
+
|
|
7
|
+
## Metadados
|
|
8
|
+
|
|
9
|
+
| Campo | Valor | Evidência |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| Repo | `/home/edgar/Documentos/projetos/forjas/platform-forge` | — |
|
|
12
|
+
| HEAD | `b58dc9c8460ecb14de2727970b4f941f1cf83237` | `git log -1` |
|
|
13
|
+
| Versão | `0.1.6` | `pyproject.toml` (`name = "platformforge"`) |
|
|
14
|
+
| Python | `>=3.10` | `pyproject.toml` |
|
|
15
|
+
| Build | hatchling, pacote na raiz (`platformforge/`) | `[build-system]` |
|
|
16
|
+
| CLI | `platformforge`, `platformforge-mcp` | `[project.scripts]` |
|
|
17
|
+
| Wheel publicado | `platformforge-0.1.6-py3-none-any.whl` (1.348.731 B) | PyPI JSON API |
|
|
18
|
+
| Wheel local | **sha256 idêntico ao publicado** (`162be2b8…`) | `sha256sum` comparado |
|
|
19
|
+
| sdist publicado | 3.501.791 B | PyPI JSON API |
|
|
20
|
+
| sdist local | **83.018.615 B** — contém `.tokensave/` (404 MB) | `tar -tzvf` |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 1. Inspeção de arquitetura (§3.1)
|
|
25
|
+
|
|
26
|
+
### 1.1 Mapa de módulos
|
|
27
|
+
|
|
28
|
+
Pacote `platformforge/` na raiz (não-src). Relevantes ao contexto:
|
|
29
|
+
|
|
30
|
+
| Área | Módulo | Papel |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| Install lifecycle | `install/service.py` (421 linhas) | adapter `forge/*` sobre o motor nativo + kit vendored |
|
|
33
|
+
| Motor de install nativo | `distribution/service.py` (225), `distribution/models.py`, `distribution/bundle.py`, `distribution/hostflow.py` | plan/apply/uninstall/upgrade/doctor com sha256 por arquivo + bundles relocáveis |
|
|
34
|
+
| Installkit compartilhado | `_installkit.py` (1732) | **vendored, byte-idêntico** a `the-forge/scripts/installkit` e às cópias de api-forge/data-sentinel (mesmo md5 `a31bd4f0…`) |
|
|
35
|
+
| CLI | `cli/main.py` (3832 linhas, argparse) + `portable_cli.py` (199) | verbos `install/uninstall/upgrade/portable/workspace/mcp/hosts/integrate/…` |
|
|
36
|
+
| Agents | `agents/roster.py` (41 AgentSpec) + `agents/mirrors.py` | roster canônico em código; mirrors gerados |
|
|
37
|
+
| Skills portáveis | `data/portable_skills/` (12 dirs: 11 `platformforge-*` + `portable_skills/` aninhado?) — ver nota | package data dentro do wheel |
|
|
38
|
+
| Package data | `platformforge/data/{rules,knowledge,contracts,evals,lab,portable_skills}` | force-include do wheel |
|
|
39
|
+
| Knowledge | `knowledge/{aws,crossplane,kubernetes,terraform}/*.yaml` + `sources.yaml` (88 K) | pacotes de conhecimento com proveniência |
|
|
40
|
+
| Rules | `rules/catalog/*.yaml` (9 arquivos) → 63 regras | `load_catalog` |
|
|
41
|
+
| Contracts | `contracts/*.schema.json` (23) | schemas JSON |
|
|
42
|
+
| Evals | `evals/cases/` (94 casos) + `evals/qpt-bench/` | corpus |
|
|
43
|
+
| Lab | `lab/{scenarios,fleets,chaos-pod-kill}` (784 K) | cenários de laboratório |
|
|
44
|
+
| MCP | `mcp/{server,registry,tools,parity}.py` | JSON-RPC stdio **hand-rolled** (sem dep `mcp`); 39 tools |
|
|
45
|
+
| Forge interop | `forge/{manifest,delegate,collect}.py` | `forge manifest|delegate|verify|discover|collect` |
|
|
46
|
+
| Workspace | `workspace/service.py` (`ensure_workspace`, `load_workspace`, `add_repo`, `remove_repo`, `doctor`) | `.platformforge/workspace.json` (`platformforge/workspace-manifest/v1`) |
|
|
47
|
+
| Recursos | `resources.py` (`data_path`, materialização via `importlib.resources`) | resolve `platformforge/data/` no wheel |
|
|
48
|
+
| Bootstrap | `scripts/forge_bootstrap.py`, `scripts/forge_installkit.py` | vendored, byte-idênticos a api-forge (`cmp -s` verificado) |
|
|
49
|
+
| UI/wizard | `ui/`, `portable_cli.run_guided_install` | wizard interativo bare `platformforge install` |
|
|
50
|
+
|
|
51
|
+
Nota sobre `data/portable_skills/`: a listagem mostra 12 entradas —
|
|
52
|
+
`platformforge-{agents,change,core,economy,finops,fleet,governance,graph,lab,sdd,security,sre}`
|
|
53
|
+
— e o render instala os SKILL.md encontrados (verificado: 12 SKILL.md por
|
|
54
|
+
diretório de skill no alvo — `platformforge-*` + um extra aninhado).
|
|
55
|
+
|
|
56
|
+
### 1.2 Canônico vs derivado
|
|
57
|
+
|
|
58
|
+
| Item | Status | Gerador oficial |
|
|
59
|
+
|---|---|---|
|
|
60
|
+
| `platformforge/agents/roster.py` (41 AgentSpec) | **canônico** | edição manual (`agents lint`) |
|
|
61
|
+
| `agents/*.md`, `.agents/agents/*.md`, `.claude/agents/*.md`, `.codex/agents/*.toml`, `.devin/agents/*.md` | derivado | `platformforge agents sync` (`agents/mirrors.py`, `TARGETS` fixo) — gate `agents check` |
|
|
62
|
+
| `.devin/skills/`, `.claude/skills/`, `.agents/skills/`, `platformforge/data/portable_skills/` | **ambíguo** — 4 cópias byte-idênticas (md5 verificado); `portal_adapter.py:27` chama `.devin/skills` de canônico, mas **não há gerador/gate de drift para skills** | nenhum encontrado |
|
|
63
|
+
| `_installkit.py`, `scripts/forge_*` | derivado (vendored) | `the-forge/scripts/installkit/` |
|
|
64
|
+
| `install/service.py`, `distribution/*` | **canônicos desta forja** | edição manual |
|
|
65
|
+
| `forge.json`, `forge.agentic.json` | **canônico** | edição manual |
|
|
66
|
+
| `contracts/*.schema.json` | **canônico** | edição manual |
|
|
67
|
+
| `.platformforge/cases|ledgers` (golden/holdout) | **canônico, rastreado em git** | edição manual (dogfooding) |
|
|
68
|
+
| `AGENTS.md`, `CLAUDE.md`, `AGENTIC-OS.md`, … ~60 docs de raiz | **canônico** | edição manual |
|
|
69
|
+
|
|
70
|
+
### 1.3 Host integration e MCP
|
|
71
|
+
|
|
72
|
+
- `install` → `distribution.service.portable_assets`: agents renderizados do
|
|
73
|
+
roster p/ `.agents/agents` (md), `.claude/agents` (md), `.codex/agents`
|
|
74
|
+
(**toml**), `.devin/agents` (md); skills → `.agents/skills`,
|
|
75
|
+
`.claude/skills`, `.devin/skills`. `copilot` mapeia para `agents`
|
|
76
|
+
(sem `.github/` — observado: nenhum arquivo `.github` no alvo).
|
|
77
|
+
- MCP: `install` escreve **apenas** `.platformforge/mcp.json` — um hint
|
|
78
|
+
`platformforge/mcp-bootstrap/v1` ("scope: workspace-local"), **não**
|
|
79
|
+
`.mcp.json` gerenciado. O caminho real de registro é `platformforge mcp
|
|
80
|
+
integrate --host …` (`mcp/parity.py`) — fora do ledger.
|
|
81
|
+
- MCP server: `platformforge-mcp`/`python -m platformforge mcp serve` —
|
|
82
|
+
JSON-RPC 2.0 stdio implementado à mão (`mcp/server.py`), sem dep `mcp`;
|
|
83
|
+
`install mcp-verify` executa handshake real → **PASS, 39 tools** na venv
|
|
84
|
+
limpa (observado).
|
|
85
|
+
- `platformforge hosts` — observa binários de host (claude/devin/codex/copilot
|
|
86
|
+
→ `NOT_DETECTED` nesta máquina); `--launch` é fronteira humana TTY.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 2. Matriz de recursos (§3.2)
|
|
91
|
+
|
|
92
|
+
Evidência executada em `/tmp/pf-venv` (wheel), alvo `/tmp/pf-target` com
|
|
93
|
+
`git init`, `HOME=/tmp/pf-home` isolada. Sem teste com host real — células
|
|
94
|
+
sem prova direta marcadas `não verificado`.
|
|
95
|
+
|
|
96
|
+
| Recurso | Existe na fonte | Está no wheel | Instalado no alvo | Descoberto pelo host | Utilizável | Verificado |
|
|
97
|
+
|---|---|---|---|---|---|---|
|
|
98
|
+
| Skills | SIM — 4 árvores idênticas (`.devin/skills` chamado canônico) | SIM — `platformforge/data/portable_skills` | SIM — `.agents/skills`, `.claude/skills`, `.devin/skills` (12 SKILL.md cada; codex consome `.agents`) | convenção de diretório | SIM | SIM — escritos e contados |
|
|
99
|
+
| Agents | SIM — `roster.py` (41) | SIM — roster vai no pacote; render em runtime | SIM — 41 arquivos por host dir (`.agents|.claude|.devin` md; `.codex` toml) | convenção de diretório | SIM | SIM — `install --yes` → 201 assets |
|
|
100
|
+
| MCP | SIM — server próprio stdio | SIM — entry point `platformforge-mcp` | PARCIAL — só hint `.platformforge/mcp.json`; `.mcp.json` exige `mcp integrate` manual | **NÃO pelo install** — nenhuma config de host é escrita | SIM — handshake PASS (39 tools) | SIM — `install mcp-verify` PASS |
|
|
101
|
+
| Knowledge | SIM — `knowledge/` (14 packs yaml) | SIM — `data/knowledge` | **NÃO copiado** | **NÃO** — sem ponteiro no alvo | SIM — `knowledge packs` → 13 packs ok | SIM |
|
|
102
|
+
| Rules | SIM — `rules/catalog/` (9 yaml, 63 regras) | SIM — `data/rules/catalog/` | **NÃO copiado** | **NÃO** | PARCIAL — `judge`/`forge manifest` leem do pacote, **mas `--repo .` default desvia para cwd** (ver §5 P1-3) | SIM |
|
|
103
|
+
| Evals | SIM — `evals/cases/` (94) | SIM — `data/evals` (164 arquivos) | **NÃO copiado** | **NÃO** | SIM — `evals list` funciona no alvo | SIM |
|
|
104
|
+
| Lab | SIM — `lab/` | SIM — `data/lab` (107) | **NÃO copiado** | **NÃO** | SIM — `lab run-all` → 44/44 passed | SIM |
|
|
105
|
+
| Contracts/schemas | SIM — `contracts/` (23) | SIM — `data/contracts` | **NÃO copiado** | **NÃO** | SIM via runtime | SIM |
|
|
106
|
+
| Protocols | SIM — AGENTS.md de repo; `platformforge/agentic_runtime` interno | **NÃO** — nenhum AGENT_PROTOCOL/protocolo de consumidor no wheel | **NÃO** | **NÃO** — nem marcador existe | **NÃO** | SIM — ausência confirmada |
|
|
107
|
+
| Verificadores | SIM — `install doctor/status`, `portable verify`, `validate.py` gates | SIM (código) | n/a | **NÃO** | SIM | SIM — doctor executado |
|
|
108
|
+
| Políticas | SIM — AGENTS.md/raiz, `.devin` hooks? (repo tem só `.devin/{agents,skills}`) | **NÃO** | **NÃO** | **NÃO** | **NÃO** | SIM |
|
|
109
|
+
| Manifesto de capacidades | `forge.json`/`forge.agentic.json` + `forge manifest` verb + `capability list|manifest|check` | `forge.json` **não** entra no wheel; o **verbo** sim | `.platformforge/distribution-manifest.json` escrito no install (capability list interna) | PARCIAL — manifesto de distribuição existe no alvo, mas lista só 5 capabilities genéricas | SIM — `forge manifest` roda (com ressalva §5 P1-3) | SIM |
|
|
110
|
+
| Registry de contexto (`.forge/context/`) | **NÃO existe** | n/a | **NÃO** — `.platformforge/workspace.json` cobre workspace multi-repo, não contexto de forjas | **NÃO** | **NÃO** | SIM |
|
|
111
|
+
| Registry global `~/.forge/installations/` | contrato do installkit | n/a | **NÃO escrito** — `install` não chama `register_installation` (ausência confirmada em `/tmp/pf-home`) | **NÃO** | **NÃO** | SIM |
|
|
112
|
+
|
|
113
|
+
### 2.1 Evidência bruta principal
|
|
114
|
+
|
|
115
|
+
```text
|
|
116
|
+
$ HOME=/tmp/pf-home /tmp/pf-venv/bin/platformforge install --yes # /tmp/pf-target
|
|
117
|
+
status: completed · managed_files: 51 (recibo); 201 assets no manifesto de distribuição
|
|
118
|
+
dirs: .agents/agents(41) .agents/skills(12) .claude/agents(41) .claude/skills(12)
|
|
119
|
+
.codex/agents(41 *.toml) .devin/agents(41) .devin/skills(12)
|
|
120
|
+
.platformforge/: components.json distribution-manifest.json install-receipt.json
|
|
121
|
+
mcp.json (hint) receipts/ workspace.json
|
|
122
|
+
SEM: AGENTS.md · CLAUDE.md · .mcp.json · .github/* · ~/.forge/installations/*
|
|
123
|
+
|
|
124
|
+
$ platformforge install doctor # status: healthy — pf:* PASS + mcp-handshake PASS
|
|
125
|
+
$ platformforge install mcp-verify # handshake real → 39 tools, invoke PASS
|
|
126
|
+
$ platformforge lab run-all # {'failed': 0, 'passed': 44}
|
|
127
|
+
$ platformforge forge manifest # rule_count: 0 + warning "catalog dir missing"
|
|
128
|
+
$ platformforge forge manifest --repo <site-packages>/platformforge/data # rule_count: 63
|
|
129
|
+
$ platformforge portable build /tmp/pf-bundle --host agents --host claude
|
|
130
|
+
→ 107 assets + MANIFEST.sha256; portable verify → valid: true
|
|
131
|
+
$ platformforge install uninstall --purge → removed: 51; dirs de host podados
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## 3. Análise do instalador (§3.3)
|
|
137
|
+
|
|
138
|
+
Arquitetura em duas camadas — **diferente das irmãs**:
|
|
139
|
+
|
|
140
|
+
```text
|
|
141
|
+
cli/main.py + portable_cli.py
|
|
142
|
+
→ install/service.py (adapter forge/*: escopos, hosts, perfis,
|
|
143
|
+
recusas FORGE-INSTALL-*, lock do kit,
|
|
144
|
+
registry de schemas)
|
|
145
|
+
→ distribution/service.py (motor nativo: plan/apply/uninstall/doctor,
|
|
146
|
+
InstallPlan/InstallReceipt/
|
|
147
|
+
DistributionManifest, sha256 por arquivo,
|
|
148
|
+
write staging + os.replace)
|
|
149
|
+
→ _installkit.py (só peças: resolve_scope parcial? não —
|
|
150
|
+
SCOPES/E_*, acquire_lock, components,
|
|
151
|
+
mcp_verify, _prune_empty_dirs, registry
|
|
152
|
+
helpers — pouco usado)
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
| Aspecto | Implementação observada |
|
|
156
|
+
|---|---|
|
|
157
|
+
| Resolução do alvo | `install/service._resolve`: `--repo`/cwd `.resolve()`; **project exige `.git` ou `forge.json`** (senão `FORGE-INSTALL-NOT-A-REPO`); workspace = ancestral com `.platformforge/workspace.json`, senão o próprio root (diretório fresco aceito); user = `Path.home()` |
|
|
158
|
+
| `scope=project` | `<root>/.platformforge/` + mirrors de host na raiz |
|
|
159
|
+
| `scope=workspace` | idem — mesma escrita; distinção só na resolução do root |
|
|
160
|
+
| `scope=user` | `$HOME`: `~/.agents`, `~/.claude`, `~/.codex`, `~/.devin`, `~/.platformforge` — verificado em `/tmp/pf-home2` |
|
|
161
|
+
| Assets copiados | agents (roster→mirrors) + skills (`data/portable_skills`) + `.platformforge/mcp.json` hint |
|
|
162
|
+
| Assets referenciados | rules/knowledge/contracts/evals/lab — via `platformforge/data/` no pacote (`resources.data_path`) |
|
|
163
|
+
| Assets ignorados | AGENTS.md/CLAUDE.md/AGENTIC-OS.md de consumidor, `forge.json`, `docs/`, `.github` (copilot), `.mcp.json` real |
|
|
164
|
+
| Merge | **não há merge em arquivos do usuário** — nenhum marker block, nenhum `.mcp.json` gerenciado; escrita só em caminhos managed |
|
|
165
|
+
| Ownership | `install-receipt.json` (path→sha256) + `distribution-manifest.json` (distribution_id sha256 do conteúdo); arquivo modificado = conflito que **recusa o plano inteiro** (`PF-DIST-CONFLICT`) em vez de pular |
|
|
166
|
+
| Uninstall | remove só arquivos cujo sha256 confere com o recibo; modificados = `preserved_modified`; `--purge` remove `workspace.json`; dirs vazios podados (`kit._prune_empty_dirs`) |
|
|
167
|
+
| Repair | reaplica para missing; **arquivos managed modificados pelo usuário NÃO são restaurados** ("user content by contract" — `service.py:322`) — diverge do kit (kit repair re-escreve managed drifted) |
|
|
168
|
+
| Update | `pip install --upgrade <checkout>` na venv registrada — exige `~/.forge/installations/platform-forge.json` (escrito pelo **bootstrap**, não pelo install) |
|
|
169
|
+
| Host selection | `--host` append; mapa contrato→nativo: `copilot→agents`; escolhas CLI: agents/claude/codex/devin/copilot/all |
|
|
170
|
+
| Perfis | contrato `minimal|recommended|full` validado mas **sempre mapeado para profile nativo `agentic`** (um único conjunto de assets) |
|
|
171
|
+
| Componentes | `--components` gravado em `.platformforge/components.json` (inclui `execution_profile`); não filtra assets (native engine ignora asset_kinds) |
|
|
172
|
+
| Registry | `~/.forge/installations/` **nunca escrito pelo install** — só o `forge_bootstrap.py` registra |
|
|
173
|
+
| Lock | `kit.acquire_lock(.platformforge)` |
|
|
174
|
+
| Staging | escreve `*.platformforge-stage` + `os.replace` atômico; verificação de hash pós-stage |
|
|
175
|
+
| Receipts de verbos | `_write_receipt` em `cli/main.py` → `.platformforge/receipts/rcpt-*.json` por operação com `--repo` |
|
|
176
|
+
|
|
177
|
+
### 3.1 Superfície extra de distribuição
|
|
178
|
+
|
|
179
|
+
- `platformforge portable build|verify|install|doctor` — bundle relocável
|
|
180
|
+
`assets/` + `manifest.json` + **`MANIFEST.sha256`** (equivalente ao
|
|
181
|
+
installkit maduro) — verificado funcionando do wheel.
|
|
182
|
+
- `platformforge upgrade` — reaplica sobre recibo antigo (profile/hosts do
|
|
183
|
+
recibo).
|
|
184
|
+
- `platformforge workspace init|add|remove|list|doctor|status` —
|
|
185
|
+
`.platformforge/workspace.json` multi-repo (`platformforge/workspace-manifest/v1`).
|
|
186
|
+
- `platformforge mcp integrate|detach` — escreve config de MCP por host
|
|
187
|
+
(ver gaps — fora do ledger).
|
|
188
|
+
- `platformforge integrate` — alias do mesmo parity path.
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## 4. Diagnóstico PyPI (§3.4)
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
.venv/bin/python -m build --outdir /tmp/pf-dist .
|
|
196
|
+
python3 -m zipfile -l /tmp/pf-dist/platformforge-0.1.6-py3-none-any.whl
|
|
197
|
+
tar -tzvf /tmp/pf-dist/platformforge-0.1.6.tar.gz | sort -k3 -rn | head
|
|
198
|
+
python3 -m venv /tmp/pf-venv && /tmp/pf-venv/bin/pip install /tmp/pf-dist/*.whl
|
|
199
|
+
mkdir /tmp/pf-target && cd /tmp/pf-target && git init .
|
|
200
|
+
HOME=/tmp/pf-home /tmp/pf-venv/bin/platformforge install --yes
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### 4.1 Conteúdo real do wheel (`unzip -l`, resumo)
|
|
204
|
+
|
|
205
|
+
| Árvore | Arquivos | Origem |
|
|
206
|
+
|---|---|---|
|
|
207
|
+
| `platformforge/` código | ~303 dirs de 1º nível + módulos | pacote raiz |
|
|
208
|
+
| `platformforge/data/contracts` | 24 | force-include `contracts/` |
|
|
209
|
+
| `platformforge/data/evals` | 164 | force-include `evals/` |
|
|
210
|
+
| `platformforge/data/knowledge` | 14 | force-include `knowledge/` |
|
|
211
|
+
| `platformforge/data/lab` | 107 | force-include `lab/` |
|
|
212
|
+
| `platformforge/data/portable_skills` | 12 | package data nativa |
|
|
213
|
+
| `platformforge/data/rules` | 9 | force-include `rules/` |
|
|
214
|
+
| `platformforge/portal_assets` | 46 | force-include `portal/assets/` |
|
|
215
|
+
| `forge.json` / `forge.agentic.json` / docs de raiz | **0 — ausentes** | só sdist |
|
|
216
|
+
|
|
217
|
+
### 4.2 Prova funcional fora do checkout
|
|
218
|
+
|
|
219
|
+
- `platformforge --version` → 0.1.6; `--help` lista ~60 verbos ✔
|
|
220
|
+
- `install --yes` → 51 managed files (201 assets com mirrors) ✔
|
|
221
|
+
- `install doctor` → healthy; `mcp-verify` → handshake real PASS (39 tools) ✔
|
|
222
|
+
- `lab run-all` → 44/44 passed (do `data/lab` do wheel) ✔
|
|
223
|
+
- `evals list`, `knowledge packs` (13), `capability list` (39 caps),
|
|
224
|
+
`agents list` (41) ✔
|
|
225
|
+
- `forge manifest` → roda mas **degrada fora de checkout** (ver §5 P1-3)
|
|
226
|
+
- `portable build/verify` → bundle + `MANIFEST.sha256` válidos ✔
|
|
227
|
+
- `doctor` (runtime) → honesto (`boto3`/`mcp_adapter` = not-installed) ✔
|
|
228
|
+
- `install uninstall --purge` → 51 removidos, dirs podados;
|
|
229
|
+
`.platformforge/{materials,receipts}` (runtime) preservados ✔
|
|
230
|
+
|
|
231
|
+
### 4.3 Comparativo com o publicado (0.1.6)
|
|
232
|
+
|
|
233
|
+
| Artefato | Local | PyPI | Nota |
|
|
234
|
+
|---|---|---|---|
|
|
235
|
+
| wheel sha256 | `162be2b8…` | `162be2b8…` | **byte-idêntico — reproduzível** |
|
|
236
|
+
| sdist | 83 MB | 3,5 MB | `.tokensave/tokensave.db` (404 MB) no sdist local |
|
|
237
|
+
|
|
238
|
+
Causa-raiz idêntica à api-forge: `.tokensave/` excluído só em
|
|
239
|
+
`.git/info/exclude` (linha 7, local); `.gitignore` não o contém (contém
|
|
240
|
+
`.platformforge/` parcialmente com negações para `cases/`/`ledgers/`, que
|
|
241
|
+
são rastreados intencionalmente). O sdist local carrega também `.devin`,
|
|
242
|
+
`.claude`, `.codex`, `.agents`, `agents/`, `docs/` (251), `tests/` (109),
|
|
243
|
+
`evals/`, `lab/`, `contracts/`, `knowledge/`, `portal/`, `scripts/`,
|
|
244
|
+
`.platformforge/` (18 entradas — golden/holdout cases rastreados).
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## 5. Gaps, causa-raiz, riscos, decisões, migração (§3.5)
|
|
249
|
+
|
|
250
|
+
### P0 — quebra a promessa central do install 2.0
|
|
251
|
+
|
|
252
|
+
**P0-1 · Nenhuma instrução de entrada chega ao consumidor — sem AGENTS.md,
|
|
253
|
+
sem marker, sem protocolo.**
|
|
254
|
+
- Evidência: após `install --yes`, `/tmp/pf-target` não tem `AGENTS.md`,
|
|
255
|
+
`CLAUDE.md`, marker ou qualquer doc; `ForgeSpec(marker_files=(),
|
|
256
|
+
marker_body="")` (`install/service.py:62–63`). O host só descobre skills
|
|
257
|
+
e agents por convenção de diretório — nada explica como usá-los, qual o
|
|
258
|
+
contrato, onde estão regras/conhecimento.
|
|
259
|
+
- Causa-raiz: o installkit compartilhado suporta markers, mas o spec de
|
|
260
|
+
platform-forge os desativou; não existe AGENT_PROTOCOL.md nesta forja.
|
|
261
|
+
- Risco: instalação "muda" — o host vê arquivos mas não sabe operá-los
|
|
262
|
+
(verb-before-answering, PF-* refusal codes, evidence tiers — nada disso
|
|
263
|
+
chega ao contexto).
|
|
264
|
+
- Decisão proposta: criar `AGENT_PROTOCOL.md`/marker consumidor mínimo
|
|
265
|
+
(habilitar `marker_files`/`marker_body` no spec) + `.forge/context/`
|
|
266
|
+
com mapa de descoberta.
|
|
267
|
+
|
|
268
|
+
**P0-2 · MCP não é registrado pelo install; o caminho manual grava comando
|
|
269
|
+
quebrado e fora do ledger.**
|
|
270
|
+
- Evidência: `install` grava só `.platformforge/mcp.json` (hint).
|
|
271
|
+
`platformforge mcp integrate --host claude` escreveu
|
|
272
|
+
`.mcp.json` com `"command": "python"` — nesta máquina `python` não existe
|
|
273
|
+
(`which python` falhou; só `/usr/bin/python3`). `--host codex` anexa
|
|
274
|
+
`[mcp_servers.platformforge]` a `.codex/config.toml` **a cada chamada**
|
|
275
|
+
(2 blocos após 2 chamadas — TOML inválido por chave duplicada; observado).
|
|
276
|
+
- Causa-raiz: `mcp/parity.py` `SERVER_CMD = ["python", "-m", "platformforge",
|
|
277
|
+
"mcp", "serve"]` ignora `platformforge-mcp` (console script) e não dedup;
|
|
278
|
+
escrita fora do ledger → `install status` diz `healthy` enquanto
|
|
279
|
+
`.mcp.json` não é rastreado e `uninstall` não o remove (observado:
|
|
280
|
+
`healthy` com `.mcp.json` não-gerenciado presente).
|
|
281
|
+
- Risco: consumidor configura MCP pelo caminho documentado e o servidor
|
|
282
|
+
não sobe (python ausente/errado); drift invisível.
|
|
283
|
+
- Decisão proposta: rotear registro MCP pelo managed key do installkit
|
|
284
|
+
(`.mcp.json` com `_forge_managed`), usar `mcp_command` do spec
|
|
285
|
+
(`platformforge-mcp`), dedup/idempotência, e cobrir o caminho `integrate`
|
|
286
|
+
no ledger ou deprecá-lo.
|
|
287
|
+
|
|
288
|
+
**P0-3 · Registry global `~/.forge/installations/` nunca é escrito pelo
|
|
289
|
+
install.**
|
|
290
|
+
- Evidência: `install --yes` executado; `/tmp/pf-home/.forge/installations/`
|
|
291
|
+
inexistente. `service.install` não chama `kit.register_installation`
|
|
292
|
+
(contrário a api-forge/data-sentinel).
|
|
293
|
+
- Causa-raiz: o adapter `install/service.py` embrulha só o motor nativo;
|
|
294
|
+
o registro ficou delegado ao `forge_bootstrap.py` (fluxo de conta).
|
|
295
|
+
- Risco: instalação por wheel/`install` é invisível para descoberta
|
|
296
|
+
cross-forge (`forge collect`, the-forge) — quebra §4.2 do prompt.
|
|
297
|
+
- Decisão proposta: registrar `forge/InstallationManifest/v1` no apply e
|
|
298
|
+
deregistrar no uninstall.
|
|
299
|
+
|
|
300
|
+
### P1 — degradação silenciosa e divergências
|
|
301
|
+
|
|
302
|
+
**P1-1 · `forge manifest` degrada fora de checkout: `rule_count: 0`.**
|
|
303
|
+
- Evidência: `platformforge forge manifest` em `/tmp/pf-target` → warning
|
|
304
|
+
`catalog dir missing: rules/catalog`, `rule_count: 0`, `commit: ""`;
|
|
305
|
+
com `--repo <site-packages>/platformforge/data` → `rule_count: 63`.
|
|
306
|
+
- Causa-raiz: `--repo` default `.` (`cli/main.py:227`) e `capability_manifest`
|
|
307
|
+
usa `root/rules/catalog` do cwd em vez de cair para `data_path()` quando
|
|
308
|
+
o cwd não é um checkout.
|
|
309
|
+
- Risco: manifesto publicado por uma forja wheel afirma 0 regras — mentira
|
|
310
|
+
por omissão em consumo cross-forge.
|
|
311
|
+
- Decisão proposta: fallback `data_path("rules/catalog")` quando o repo não
|
|
312
|
+
tem catálogo; recusar com unlock quando nenhum existe.
|
|
313
|
+
|
|
314
|
+
**P1-2 · `repair` diverge do contrato do kit: managed modificado nunca é
|
|
315
|
+
restaurado.**
|
|
316
|
+
- Evidência (código): `install/service.py:284–333` — em conflito, só
|
|
317
|
+
`plan.creates` é restaurado; managed `drift` fica em `kept` ("user content
|
|
318
|
+
by contract"). O kit (`_installkit.repair`) re-escreve managed drifted.
|
|
319
|
+
- Impacto: `install repair` não conserta drift de assets — comportamento
|
|
320
|
+
divergente entre forjas com o mesmo nome de verbo. Decisão: documentar a
|
|
321
|
+
divergência como contrato explícito ou alinhar com o kit (re-heal com
|
|
322
|
+
backup — o engine já snapshot-aria via recibo).
|
|
323
|
+
|
|
324
|
+
**P1-3 · Perfil do contrato é ignorado — sempre `agentic`.**
|
|
325
|
+
- Evidência (código): `service.install` valida `minimal|recommended|full`
|
|
326
|
+
mas chama `apply_install(target, "agentic", hosts)`; `--components` é só
|
|
327
|
+
persistido — `minimal` instala os mesmos 201 assets que `full`.
|
|
328
|
+
- Risco: perfil documentado mas sem efeito — falso controle de contexto
|
|
329
|
+
(economia). Decisão: mapear perfis para subconjuntos reais ou recusar
|
|
330
|
+
perfis não-implementados honestamente.
|
|
331
|
+
|
|
332
|
+
**P1-4 · sdist local vaza `.tokensave/` (404 MB).**
|
|
333
|
+
- Mesma causa-raiz da api-forge: `.git/info/exclude` local vs `.gitignore`.
|
|
334
|
+
Publicado está limpo (CI), mas build manual de checkout sujo vaza estado.
|
|
335
|
+
- Decisão: `.gitignore` commitado + excludes de sdist + gate de conteúdo.
|
|
336
|
+
|
|
337
|
+
**P1-5 · Quatro cópias de skills sem gerador/gate de drift.**
|
|
338
|
+
- `.devin/skills`, `.claude/skills`, `.agents/skills`,
|
|
339
|
+
`platformforge/data/portable_skills` — md5 idênticos hoje; `portal_adapter`
|
|
340
|
+
chama `.devin` de canônico; não há `sync`/`check` para skills (o gate
|
|
341
|
+
`agents check` cobre só mirrors de agents).
|
|
342
|
+
- Risco: drift silencioso entre canônico e package data → wheel instala
|
|
343
|
+
skill diferente da editada. Decisão: gerador único + gate (como
|
|
344
|
+
`scripts/sync_skills.py` + `validate_skills.py --check-mirrors` da
|
|
345
|
+
api-forge).
|
|
346
|
+
|
|
347
|
+
**P1-6 · `forge collect` espera `capability manifest` nas irmãs — verbo
|
|
348
|
+
inexistente na api-forge.**
|
|
349
|
+
- Evidência: `forge/collect.py` `KNOWN_FORGES["api-forge"] =
|
|
350
|
+
["capability","manifest"]`; na venv da api-forge: `apiforge capability`
|
|
351
|
+
→ `No such command` (existentes: `capabilities list|verify`,
|
|
352
|
+
`forge capabilities`).
|
|
353
|
+
- Risco: ingresso cross-forge quebra no primeiro hop; manifestos ficam
|
|
354
|
+
`unresolved`. Decisão: tabela KNOWN_FORGES por capacidade descoberta
|
|
355
|
+
(probe `forge capabilities`/`capabilities list`) — ou o contrato
|
|
356
|
+
`forge-context/v1` unifica.
|
|
357
|
+
|
|
358
|
+
### P2 — assimetrias e endurecimento
|
|
359
|
+
|
|
360
|
+
- **P2-1** — codex recebe `.codex/agents/*.toml` (bom) mas nenhum
|
|
361
|
+
`.codex/config.toml` MCP gerenciado; copilot não recebe `.github/*` —
|
|
362
|
+
decisão documentada ("copilot→agents") vs api-forge (`.github/agents`
|
|
363
|
+
`.agent.md`) — unificar no contrato.
|
|
364
|
+
- **P2-2** — `install update` exige registro do bootstrap; sem ele →
|
|
365
|
+
`BLOCKED` (correto, honesto).
|
|
366
|
+
- **P2-3** — `.platformforge/{materials,receipts}` sobrevivem a
|
|
367
|
+
`uninstall --purge` (runtime state) — defensável, mas documentar o que
|
|
368
|
+
purge cobre (hoje: `workspace.json` + assets managed; state dir fica).
|
|
369
|
+
- **P2-4** — `forge.json`/`forge.agentic.json` fora do wheel — manifesto de
|
|
370
|
+
delegação indisponível p/ consumidor wheel.
|
|
371
|
+
- **P2-5** — `mcp serve` imprime banner de help quando chamado sem args
|
|
372
|
+
via `python -m platformforge` (stdout) — inócuo em `mcp serve`, mas
|
|
373
|
+
atenção a stdout limpo no transporte JSON-RPC.
|
|
374
|
+
- **P2-6** — `AGENTIC-OS.md` + ~60 docs de raiz não têm equivalente
|
|
375
|
+
consumidor; políticas/steering não são entregues — mesmo problema do P0-1.
|
|
376
|
+
|
|
377
|
+
### Plano de migração proposto
|
|
378
|
+
|
|
379
|
+
1. `forge-context/v1`: `.forge/context/{registry,capabilities/<id>.json,
|
|
380
|
+
ROUTING.md}` no apply + registro em `~/.forge/installations/` (P0-2/P0-3).
|
|
381
|
+
2. Entrada de instrução no consumidor: habilitar markers
|
|
382
|
+
(`AGENTS.md`+`CLAUDE.md`) ou gerar AGENT_PROTOCOL consumidor (P0-1).
|
|
383
|
+
3. MCP: managed key via installkit + `platformforge-mcp` real + dedup +
|
|
384
|
+
cobertura no ledger; deprecar ou consertar `mcp integrate` (P0-2).
|
|
385
|
+
4. `forge manifest`/`collect`: fallback `data_path` + tabela de verbos por
|
|
386
|
+
descoberta (P1-1, P1-6).
|
|
387
|
+
5. Alinhar `repair`/perfis ao contrato ou documentar divergência (P1-2, P1-3).
|
|
388
|
+
6. Skills: gerador único + gate de drift; canônico único (P1-5).
|
|
389
|
+
7. sdist excludes + gate de conteúdo (P1-4).
|
|
390
|
+
|
|
391
|
+
### Compatibilidades observadas
|
|
392
|
+
|
|
393
|
+
- Wheel byte-idêntico ao publicado → build reproduzível.
|
|
394
|
+
- `install` funciona do wheel sem checkout; `lab run-all` passa 44/44.
|
|
395
|
+
- MCP stdio próprio sem dep `mcp` → handshake real PASS sem extras.
|
|
396
|
+
- Bundle portátil com `MANIFEST.sha256` + verify — padrão installkit
|
|
397
|
+
maduro presente no caminho `portable`.
|
|
398
|
+
- Conflito de arquivo do usuário recusa o plano inteiro (fail-closed).
|
|
399
|
+
- CI forte: 30+ gates (`scripts/validate.py --gate …`), job `package` que
|
|
400
|
+
constrói wheel, instala em venv limpa e faz smoke **fora do checkout**
|
|
401
|
+
(`ci.yml:119–145`), `publish-pypi.yml` com version gate + trusted
|
|
402
|
+
publishing + verify pós-publicação.
|
|
403
|
+
- Testes: `tests/test_install_lifecycle.py`, `test_portable_distribution.py`,
|
|
404
|
+
`test_portable_workspace.py`, `test_artifact_contents.py`,
|
|
405
|
+
`test_agent_mirrors.py` (drift gate de mirrors).
|
|
406
|
+
|
|
407
|
+
## Apêndice — comandos executados
|
|
408
|
+
|
|
409
|
+
```text
|
|
410
|
+
git log -1 --format='%H %s' # b58dc9c…
|
|
411
|
+
md5sum platformforge/_installkit.py # a31bd4f0… == siblings
|
|
412
|
+
cmp -s scripts/forge_installkit.py platformforge/_installkit.py # IDÊNTICO
|
|
413
|
+
.venv/bin/python -m build --outdir /tmp/pf-dist .
|
|
414
|
+
python3 -m zipfile -l /tmp/pf-dist/platformforge-0.1.6-py3-none-any.whl
|
|
415
|
+
tar -tzvf /tmp/pf-dist/platformforge-0.1.6.tar.gz | sort -k3 -rn | head
|
|
416
|
+
sha256sum /tmp/pf-dist/*.whl # == PyPI
|
|
417
|
+
python3 -m venv /tmp/pf-venv; /tmp/pf-venv/bin/pip install …whl
|
|
418
|
+
cd /tmp/pf-target && git init
|
|
419
|
+
HOME=/tmp/pf-home /tmp/pf-venv/bin/platformforge install --yes
|
|
420
|
+
platformforge install status|doctor|repair|uninstall|update|mcp-verify
|
|
421
|
+
platformforge knowledge packs|evals list|capability list|agents list|lab run-all
|
|
422
|
+
platformforge forge manifest [--repo …] | doctor | hosts | ai | mcp integrate
|
|
423
|
+
platformforge portable build /tmp/pf-bundle … | portable verify /tmp/pf-bundle
|
|
424
|
+
platformforge install --scope user --yes # HOME=/tmp/pf-home2
|
|
425
|
+
```
|