agentscaffold 0.2.2__tar.gz → 0.2.4__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.
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/PKG-INFO +58 -8
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/README.md +57 -7
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/docs/README.md +24 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/docs/configuration.md +16 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/docs/creating-domain-packs.md +21 -2
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/docs/domain-packs.md +24 -4
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/docs/getting-started.md +59 -2
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/docs/platform-integration.md +45 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/docs/user-guide.md +69 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/pyproject.toml +1 -1
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/cli.py +8 -6
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/config.py +13 -0
- agentscaffold-0.2.4/src/agentscaffold/domain_packs/__init__.py +1 -0
- {agentscaffold-0.2.2/src/agentscaffold/domain → agentscaffold-0.2.4/src/agentscaffold/domain_packs}/registry.py +1 -1
- agentscaffold-0.2.4/src/agentscaffold/mcp/freshness.py +278 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/mcp/server.py +55 -3
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/core/plan_template.md.j2 +1 -1
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/scaffold_yaml.yaml.j2 +6 -0
- agentscaffold-0.2.2/src/agentscaffold/validate/__init__.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/.gitignore +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/LICENSE +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/docs/ci-integration.md +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/docs/importing-conversations.md +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/docs/semi-autonomous-guide.md +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/__init__.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/agents/__init__.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/agents/claude.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/agents/cursor.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/agents/generate.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/agents/prompt.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/agents/rule_policy.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/agents/windsurf.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/ci/__init__.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/ci/setup.py +0 -0
- {agentscaffold-0.2.2/src/agentscaffold/domain → agentscaffold-0.2.4/src/agentscaffold/domain_packs}/loader.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/api_services/manifest.yaml +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/api_services/prompts/api_design_review.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/api_services/prompts/contract_testing_review.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/api_services/standards/backward_compatibility.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/api_services/standards/error_response.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/api_services/standards/openapi_validation.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/api_services/standards/rate_limiting.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/api_services/standards/versioning_strategy.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/data_engineering/manifest.yaml +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/data_engineering/prompts/data_quality_review.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/data_engineering/prompts/pipeline_design_review.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/data_engineering/standards/backfill_procedures.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/data_engineering/standards/data_quality.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/data_engineering/standards/idempotency.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/data_engineering/standards/schema_evolution.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/data_engineering/standards/sla_monitoring.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/embedded/manifest.yaml +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/embedded/prompts/memory_constraint_review.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/embedded/prompts/realtime_deadline_review.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/embedded/standards/interrupt_handling.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/embedded/standards/memory_management.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/embedded/standards/ota_update.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/embedded/standards/power_consumption.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/game_dev/manifest.yaml +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/game_dev/prompts/game_loop_review.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/game_dev/prompts/performance_profiling_review.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/game_dev/standards/asset_pipeline.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/game_dev/standards/ecs_patterns.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/game_dev/standards/frame_budget.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/game_dev/standards/state_sync.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/infrastructure/manifest.yaml +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/infrastructure/prompts/cost_analysis_review.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/infrastructure/prompts/deployment_safety_review.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/infrastructure/prompts/iac_review.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/infrastructure/security/threat_model_infrastructure.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/infrastructure/standards/iac_patterns.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/infrastructure/standards/monitoring_alerting.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/infrastructure/standards/rollback_procedures.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/infrastructure/standards/secret_management.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/mlops/manifest.yaml +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/mlops/prompts/experiment_design_review.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/mlops/prompts/model_governance_review.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/mlops/prompts/model_lifecycle_review.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/mlops/standards/data_drift.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/mlops/standards/experiment_tracking.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/mlops/standards/feature_store.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/mlops/standards/model_serving.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/mlops/standards/model_versioning.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/mobile/manifest.yaml +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/mobile/prompts/app_store_compliance.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/mobile/prompts/platform_review.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/mobile/standards/deep_linking.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/mobile/standards/offline_first.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/mobile/standards/performance_profiling.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/mobile/standards/push_notifications.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/research/manifest.yaml +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/research/prompts/reproducibility_review.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/research/prompts/statistical_rigor_review.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/research/standards/citation_tracking.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/research/standards/data_archival.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/research/standards/experiment_protocol.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/research/standards/random_seed.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/trading/manifest.yaml +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/trading/prompts/quant_architect_implementation_review.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/trading/prompts/quant_architect_review.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/trading/prompts/quant_code_review.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/trading/prompts/strategy_review.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/trading/security/threat_model_live_trading.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/trading/standards/concurrency_patterns.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/trading/standards/performance_patterns.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/trading/standards/rl_patterns.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/trading/standards/rl_reward_shaping.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/trading/standards/traceability.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/webapp/manifest.yaml +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/webapp/prompts/product_design_review.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/webapp/standards/accessibility.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/webapp/standards/frontend_testing.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/webapp/standards/performance_budgets.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/domains/webapp/standards/responsive_design.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/graph/__init__.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/graph/calls.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/graph/communities.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/graph/embeddings.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/graph/governance.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/graph/imports.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/graph/incremental.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/graph/parsing.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/graph/pipeline.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/graph/queries.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/graph/schema.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/graph/search.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/graph/sessions.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/graph/store.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/graph/structure.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/graph/symbol_table.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/graph/verify.py +0 -0
- {agentscaffold-0.2.2/src/agentscaffold/domain → agentscaffold-0.2.4/src/agentscaffold/import_cmd}/__init__.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/import_cmd/chatgpt.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/import_cmd/claude.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/import_cmd/markdown.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/import_cmd/router.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/init_cmd.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/mcp/__init__.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/metrics/__init__.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/metrics/dashboard.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/notify/__init__.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/notify/sender.py +0 -0
- {agentscaffold-0.2.2/src/agentscaffold/import_cmd → agentscaffold-0.2.4/src/agentscaffold/plan}/__init__.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/plan/create.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/plan/lint.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/plan/status.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/rendering.py +0 -0
- {agentscaffold-0.2.2/src/agentscaffold/plan → agentscaffold-0.2.4/src/agentscaffold/retro}/__init__.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/retro/check.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/review/__init__.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/review/brief.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/review/challenges.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/review/feedback.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/review/gaps.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/review/queries.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/review/verify.py +0 -0
- {agentscaffold-0.2.2/src/agentscaffold/retro → agentscaffold-0.2.4/src/agentscaffold/spike}/__init__.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/spike/create.py +0 -0
- {agentscaffold-0.2.2/src/agentscaffold/spike → agentscaffold-0.2.4/src/agentscaffold/study}/__init__.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/study/create.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/study/lint.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/study/list_cmd.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/taskrunner/__init__.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/taskrunner/setup.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/agents/agents_md.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/agents/cursor_rules.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/ci/github_ci.yml.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/ci/github_security.yml.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/ci/github_semi_autonomous.yml.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/contracts/contract_template.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/contracts/contracts_readme.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/core/adr_template.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/core/plan_review_checklist.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/core/plan_template_bugfix.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/core/plan_template_refactor.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/core/session_summary.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/core/spike_template.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/core/study_template.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/pr/pull_request_template.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/project/architectural_design_changelog.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/project/collaboration_protocol.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/project/commands.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/project/product_vision.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/project/strategy_roadmap.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/project/system_architecture.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/prompts/plan_critique.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/prompts/plan_expansion.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/prompts/retrospective.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/scripts/notify_script.py.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/security/threat_model_template.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/standards/config.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/standards/errors.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/standards/logging.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/standards/testing.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/state/backlog.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/state/backlog_archive.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/state/learnings_tracker.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/state/plan_completion_log.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/state/workflow_state.md.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/taskrunner/justfile.j2 +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/templates/taskrunner/makefile.j2 +0 -0
- {agentscaffold-0.2.2/src/agentscaffold/study → agentscaffold-0.2.4/src/agentscaffold/validate}/__init__.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/validate/integration.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/validate/orchestrator.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/validate/prohibitions.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/validate/safety.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/src/agentscaffold/validate/secrets.py +0 -0
- {agentscaffold-0.2.2 → agentscaffold-0.2.4}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentscaffold
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.4
|
|
4
4
|
Summary: Structured AI-assisted development framework with plan lifecycle, review gates, and continuous improvement.
|
|
5
5
|
Project-URL: Homepage, https://github.com/drobbster/agentscaffold
|
|
6
6
|
Project-URL: Documentation, https://github.com/drobbster/agentscaffold#readme
|
|
@@ -92,7 +92,7 @@ Description-Content-Type: text/markdown
|
|
|
92
92
|
|
|
93
93
|
**Stop paying for your AI agent to rediscover your codebase every session.**
|
|
94
94
|
|
|
95
|
-
AgentScaffold is a governance framework and persistent knowledge graph for AI coding agents. It replaces the expensive pattern of agents reading
|
|
95
|
+
AgentScaffold is a governance framework and persistent knowledge graph for AI coding agents. It replaces the expensive pattern of agents re-reading files, re-grepping symbols, and re-tracing dependencies from scratch -- with a single tool call that returns exactly what the agent needs.
|
|
96
96
|
|
|
97
97
|
## The Problem
|
|
98
98
|
|
|
@@ -101,10 +101,11 @@ Every time you start a new session with Cursor, Claude Code, Codex, or any AI co
|
|
|
101
101
|
On a moderately complex codebase, a single "understand this module" task can cost **12 file reads + 2 grep searches** before the agent even starts working. A full plan review pulls in **10+ files**. Getting oriented in a new codebase means reading **38+ files**.
|
|
102
102
|
|
|
103
103
|
This is the hidden cost of agentic development: not the coding, but the *context building*.
|
|
104
|
+
AgentScaffold addresses this by separating one-time indexing from repeated reasoning work.
|
|
104
105
|
|
|
105
106
|
## The Solution
|
|
106
107
|
|
|
107
|
-
AgentScaffold builds a knowledge graph of your codebase -- code structure, dependencies, governance artifacts, session history -- and exposes it through MCP tools that your agent calls instead of reading raw files.
|
|
108
|
+
AgentScaffold builds a knowledge graph of your codebase -- code structure, dependencies, governance artifacts, and session history -- and exposes it through MCP tools that your agent calls instead of reading raw files. Instead of rebuilding context from scratch in every session, the agent retrieves scoped context in one call and moves directly into analysis or implementation.
|
|
108
109
|
|
|
109
110
|
**Measured results from our latest evaluation harness run (79 scenarios, 100% pass rate):**
|
|
110
111
|
|
|
@@ -125,6 +126,8 @@ We now report two views so results are not sugar-coated:
|
|
|
125
126
|
- **Capability efficiency (raw):** what the tools can do when selected (58% token and 91% call reduction average).
|
|
126
127
|
- **Behavior-adjusted efficiency:** capability gains multiplied by tool-routing adherence proxy.
|
|
127
128
|
|
|
129
|
+
In real usage, adjusted values are lower because agents do not always choose tools consistently; replay-based evaluation captures that behavior directly.
|
|
130
|
+
|
|
128
131
|
Current harness outputs:
|
|
129
132
|
|
|
130
133
|
| View | Token Reduction | Call Reduction |
|
|
@@ -139,7 +142,7 @@ Every tool call your agent doesn't make is money you don't spend on API tokens o
|
|
|
139
142
|
|
|
140
143
|
## What It Does
|
|
141
144
|
|
|
142
|
-
AgentScaffold combines two capabilities that
|
|
145
|
+
AgentScaffold combines two capabilities that are rarely integrated together in a single tool:
|
|
143
146
|
|
|
144
147
|
### 1. Agent Governance Framework
|
|
145
148
|
|
|
@@ -151,7 +154,8 @@ A structured development workflow that teaches your AI agent to follow a plan li
|
|
|
151
154
|
- **Retrospectives**: Post-execution learning that feeds back into the process
|
|
152
155
|
- **Session tracking**: State files that persist context across chat sessions
|
|
153
156
|
|
|
154
|
-
**Think of it as a virtual sprint team.** Most AI agents work alone -- they take instructions and start coding. AgentScaffold puts your agent on a team.
|
|
157
|
+
**Think of it as a virtual sprint team.** Most AI agents work alone -- they take instructions and start coding. AgentScaffold puts your agent on a team.
|
|
158
|
+
Before it writes a single line of code, the plan faces a devil's advocate who asks "what if this breaks?", an expansion reviewer who asks "what did you miss?", and a domain expert -- a quant architect, a UX designer, a security engineer -- who pressure-tests the approach through the lens of your specific domain. These adversarial reviews catch flawed assumptions, missing edge cases, and architectural blind spots *before* they become bugs in production.
|
|
155
159
|
|
|
156
160
|
After implementation, the sprint continues. A post-implementation review verifies what was built against what was planned. A retrospective captures what worked, what didn't, and what to do differently. Those findings flow into the learnings tracker, which feeds back into the agent's rules and templates -- so the next sprint starts sharper than the last. This is the same continuous improvement loop that makes experienced engineering teams get better over time, applied to your AI agent.
|
|
157
161
|
|
|
@@ -190,6 +194,32 @@ The `init` command scaffolds your project with:
|
|
|
190
194
|
|
|
191
195
|
The `index` command builds the knowledge graph at `.scaffold/graph.db`, enabling search, reviews, impact analysis, and session memory.
|
|
192
196
|
|
|
197
|
+
### Async freshness (low-latency graph updates for MCP)
|
|
198
|
+
|
|
199
|
+
AgentScaffold supports an async freshness mode for MCP usage. Instead of blocking a tool
|
|
200
|
+
call to re-index, the request path runs a cheap freshness check and returns immediately.
|
|
201
|
+
If the graph looks stale, a background incremental refresh is scheduled (with debounce and
|
|
202
|
+
single-flight locking) while the agent continues working.
|
|
203
|
+
|
|
204
|
+
Why this design matters:
|
|
205
|
+
|
|
206
|
+
- Keeps MCP interactions in milliseconds/seconds instead of minutes on large repos
|
|
207
|
+
- Avoids duplicate refresh jobs under parallel tool usage
|
|
208
|
+
- Surfaces explicit freshness metadata (`fresh`, `stale`, `unknown`, `refreshing`) so
|
|
209
|
+
agents can reason about confidence
|
|
210
|
+
- Preserves strict governance by allowing gate transitions to defer when freshness is
|
|
211
|
+
required and not yet restored
|
|
212
|
+
|
|
213
|
+
Configure in `scaffold.yaml`:
|
|
214
|
+
|
|
215
|
+
```yaml
|
|
216
|
+
freshness:
|
|
217
|
+
async_enabled: true
|
|
218
|
+
debounce_seconds: 120
|
|
219
|
+
gate_strict: false
|
|
220
|
+
background_queue_enabled: true
|
|
221
|
+
```
|
|
222
|
+
|
|
193
223
|
### Install with language support
|
|
194
224
|
|
|
195
225
|
```bash
|
|
@@ -204,7 +234,23 @@ pip install agentscaffold[all] # Everything
|
|
|
204
234
|
|
|
205
235
|
When you run `scaffold mcp`, these tools become available to your agent.
|
|
206
236
|
|
|
207
|
-
|
|
237
|
+
#### Interaction Modes
|
|
238
|
+
|
|
239
|
+
AgentScaffold supports two complementary ways of working:
|
|
240
|
+
|
|
241
|
+
- **Natural-language + MCP (interactive)**: describe intent conversationally and let the
|
|
242
|
+
agent route to the right governance/graph workflow.
|
|
243
|
+
- **Structural CLI commands (explicit/automation)**: use direct `scaffold` commands for
|
|
244
|
+
deterministic setup, verification, CI, and fallback.
|
|
245
|
+
|
|
246
|
+
Teams usually get best UX with NL+MCP for day-to-day flow, then use explicit CLI commands
|
|
247
|
+
for verification (`scaffold validate`, `scaffold graph verify`, `scaffold index --incremental`).
|
|
248
|
+
|
|
249
|
+
If you used the governance framework before knowledge graph integration, see
|
|
250
|
+
[`docs/migrating-governance-to-nl-mcp.md`](docs/migrating-governance-to-nl-mcp.md)
|
|
251
|
+
for a command-first -> hybrid -> NL-first transition path.
|
|
252
|
+
|
|
253
|
+
You don't need to memorize tool names. AgentScaffold teaches the agent how to interpret user intent in natural conversation, map that intent to the right MCP workflow, and only fall back to direct reads/search when tool output is insufficient. Say "let's review plan 42" and the agent routes to `scaffold_prepare_review`. Say "where did we leave off?" and it routes to `scaffold_orient`. Run `scaffold agents cursor` (or `windsurf`, `claude`) to generate platform-specific rules that wire this behavior into your IDE.
|
|
208
254
|
|
|
209
255
|
**Composite tools** -- single calls that replace entire multi-step workflows:
|
|
210
256
|
|
|
@@ -220,6 +266,8 @@ You don't need to memorize tool names. AgentScaffold ships with **intent descrip
|
|
|
220
266
|
| `scaffold_find_studies` | Searching study files by topic, tags, or outcome |
|
|
221
267
|
| `scaffold_find_adrs` | Searching architecture decision records by topic or status |
|
|
222
268
|
|
|
269
|
+
Use composite tools by default for common workflows; use granular tools when you need targeted control.
|
|
270
|
+
|
|
223
271
|
**Granular tools** -- building blocks for custom queries:
|
|
224
272
|
|
|
225
273
|
| Tool | What It Replaces |
|
|
@@ -283,9 +331,11 @@ The governance framework is domain-aware. Domain packs teach the adversarial rev
|
|
|
283
331
|
| embedded | Memory constraints, real-time deadlines, OTA safety |
|
|
284
332
|
| research | Reproducibility, statistical rigor, experiment protocol |
|
|
285
333
|
|
|
334
|
+
This keeps governance strict where risk is high and lightweight where speed matters, without rewriting the core framework.
|
|
335
|
+
|
|
286
336
|
```bash
|
|
287
|
-
scaffold
|
|
288
|
-
scaffold
|
|
337
|
+
scaffold domains add trading
|
|
338
|
+
scaffold domains add webapp
|
|
289
339
|
```
|
|
290
340
|
|
|
291
341
|
## Documentation
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
**Stop paying for your AI agent to rediscover your codebase every session.**
|
|
4
4
|
|
|
5
|
-
AgentScaffold is a governance framework and persistent knowledge graph for AI coding agents. It replaces the expensive pattern of agents reading
|
|
5
|
+
AgentScaffold is a governance framework and persistent knowledge graph for AI coding agents. It replaces the expensive pattern of agents re-reading files, re-grepping symbols, and re-tracing dependencies from scratch -- with a single tool call that returns exactly what the agent needs.
|
|
6
6
|
|
|
7
7
|
## The Problem
|
|
8
8
|
|
|
@@ -11,10 +11,11 @@ Every time you start a new session with Cursor, Claude Code, Codex, or any AI co
|
|
|
11
11
|
On a moderately complex codebase, a single "understand this module" task can cost **12 file reads + 2 grep searches** before the agent even starts working. A full plan review pulls in **10+ files**. Getting oriented in a new codebase means reading **38+ files**.
|
|
12
12
|
|
|
13
13
|
This is the hidden cost of agentic development: not the coding, but the *context building*.
|
|
14
|
+
AgentScaffold addresses this by separating one-time indexing from repeated reasoning work.
|
|
14
15
|
|
|
15
16
|
## The Solution
|
|
16
17
|
|
|
17
|
-
AgentScaffold builds a knowledge graph of your codebase -- code structure, dependencies, governance artifacts, session history -- and exposes it through MCP tools that your agent calls instead of reading raw files.
|
|
18
|
+
AgentScaffold builds a knowledge graph of your codebase -- code structure, dependencies, governance artifacts, and session history -- and exposes it through MCP tools that your agent calls instead of reading raw files. Instead of rebuilding context from scratch in every session, the agent retrieves scoped context in one call and moves directly into analysis or implementation.
|
|
18
19
|
|
|
19
20
|
**Measured results from our latest evaluation harness run (79 scenarios, 100% pass rate):**
|
|
20
21
|
|
|
@@ -35,6 +36,8 @@ We now report two views so results are not sugar-coated:
|
|
|
35
36
|
- **Capability efficiency (raw):** what the tools can do when selected (58% token and 91% call reduction average).
|
|
36
37
|
- **Behavior-adjusted efficiency:** capability gains multiplied by tool-routing adherence proxy.
|
|
37
38
|
|
|
39
|
+
In real usage, adjusted values are lower because agents do not always choose tools consistently; replay-based evaluation captures that behavior directly.
|
|
40
|
+
|
|
38
41
|
Current harness outputs:
|
|
39
42
|
|
|
40
43
|
| View | Token Reduction | Call Reduction |
|
|
@@ -49,7 +52,7 @@ Every tool call your agent doesn't make is money you don't spend on API tokens o
|
|
|
49
52
|
|
|
50
53
|
## What It Does
|
|
51
54
|
|
|
52
|
-
AgentScaffold combines two capabilities that
|
|
55
|
+
AgentScaffold combines two capabilities that are rarely integrated together in a single tool:
|
|
53
56
|
|
|
54
57
|
### 1. Agent Governance Framework
|
|
55
58
|
|
|
@@ -61,7 +64,8 @@ A structured development workflow that teaches your AI agent to follow a plan li
|
|
|
61
64
|
- **Retrospectives**: Post-execution learning that feeds back into the process
|
|
62
65
|
- **Session tracking**: State files that persist context across chat sessions
|
|
63
66
|
|
|
64
|
-
**Think of it as a virtual sprint team.** Most AI agents work alone -- they take instructions and start coding. AgentScaffold puts your agent on a team.
|
|
67
|
+
**Think of it as a virtual sprint team.** Most AI agents work alone -- they take instructions and start coding. AgentScaffold puts your agent on a team.
|
|
68
|
+
Before it writes a single line of code, the plan faces a devil's advocate who asks "what if this breaks?", an expansion reviewer who asks "what did you miss?", and a domain expert -- a quant architect, a UX designer, a security engineer -- who pressure-tests the approach through the lens of your specific domain. These adversarial reviews catch flawed assumptions, missing edge cases, and architectural blind spots *before* they become bugs in production.
|
|
65
69
|
|
|
66
70
|
After implementation, the sprint continues. A post-implementation review verifies what was built against what was planned. A retrospective captures what worked, what didn't, and what to do differently. Those findings flow into the learnings tracker, which feeds back into the agent's rules and templates -- so the next sprint starts sharper than the last. This is the same continuous improvement loop that makes experienced engineering teams get better over time, applied to your AI agent.
|
|
67
71
|
|
|
@@ -100,6 +104,32 @@ The `init` command scaffolds your project with:
|
|
|
100
104
|
|
|
101
105
|
The `index` command builds the knowledge graph at `.scaffold/graph.db`, enabling search, reviews, impact analysis, and session memory.
|
|
102
106
|
|
|
107
|
+
### Async freshness (low-latency graph updates for MCP)
|
|
108
|
+
|
|
109
|
+
AgentScaffold supports an async freshness mode for MCP usage. Instead of blocking a tool
|
|
110
|
+
call to re-index, the request path runs a cheap freshness check and returns immediately.
|
|
111
|
+
If the graph looks stale, a background incremental refresh is scheduled (with debounce and
|
|
112
|
+
single-flight locking) while the agent continues working.
|
|
113
|
+
|
|
114
|
+
Why this design matters:
|
|
115
|
+
|
|
116
|
+
- Keeps MCP interactions in milliseconds/seconds instead of minutes on large repos
|
|
117
|
+
- Avoids duplicate refresh jobs under parallel tool usage
|
|
118
|
+
- Surfaces explicit freshness metadata (`fresh`, `stale`, `unknown`, `refreshing`) so
|
|
119
|
+
agents can reason about confidence
|
|
120
|
+
- Preserves strict governance by allowing gate transitions to defer when freshness is
|
|
121
|
+
required and not yet restored
|
|
122
|
+
|
|
123
|
+
Configure in `scaffold.yaml`:
|
|
124
|
+
|
|
125
|
+
```yaml
|
|
126
|
+
freshness:
|
|
127
|
+
async_enabled: true
|
|
128
|
+
debounce_seconds: 120
|
|
129
|
+
gate_strict: false
|
|
130
|
+
background_queue_enabled: true
|
|
131
|
+
```
|
|
132
|
+
|
|
103
133
|
### Install with language support
|
|
104
134
|
|
|
105
135
|
```bash
|
|
@@ -114,7 +144,23 @@ pip install agentscaffold[all] # Everything
|
|
|
114
144
|
|
|
115
145
|
When you run `scaffold mcp`, these tools become available to your agent.
|
|
116
146
|
|
|
117
|
-
|
|
147
|
+
#### Interaction Modes
|
|
148
|
+
|
|
149
|
+
AgentScaffold supports two complementary ways of working:
|
|
150
|
+
|
|
151
|
+
- **Natural-language + MCP (interactive)**: describe intent conversationally and let the
|
|
152
|
+
agent route to the right governance/graph workflow.
|
|
153
|
+
- **Structural CLI commands (explicit/automation)**: use direct `scaffold` commands for
|
|
154
|
+
deterministic setup, verification, CI, and fallback.
|
|
155
|
+
|
|
156
|
+
Teams usually get best UX with NL+MCP for day-to-day flow, then use explicit CLI commands
|
|
157
|
+
for verification (`scaffold validate`, `scaffold graph verify`, `scaffold index --incremental`).
|
|
158
|
+
|
|
159
|
+
If you used the governance framework before knowledge graph integration, see
|
|
160
|
+
[`docs/migrating-governance-to-nl-mcp.md`](docs/migrating-governance-to-nl-mcp.md)
|
|
161
|
+
for a command-first -> hybrid -> NL-first transition path.
|
|
162
|
+
|
|
163
|
+
You don't need to memorize tool names. AgentScaffold teaches the agent how to interpret user intent in natural conversation, map that intent to the right MCP workflow, and only fall back to direct reads/search when tool output is insufficient. Say "let's review plan 42" and the agent routes to `scaffold_prepare_review`. Say "where did we leave off?" and it routes to `scaffold_orient`. Run `scaffold agents cursor` (or `windsurf`, `claude`) to generate platform-specific rules that wire this behavior into your IDE.
|
|
118
164
|
|
|
119
165
|
**Composite tools** -- single calls that replace entire multi-step workflows:
|
|
120
166
|
|
|
@@ -130,6 +176,8 @@ You don't need to memorize tool names. AgentScaffold ships with **intent descrip
|
|
|
130
176
|
| `scaffold_find_studies` | Searching study files by topic, tags, or outcome |
|
|
131
177
|
| `scaffold_find_adrs` | Searching architecture decision records by topic or status |
|
|
132
178
|
|
|
179
|
+
Use composite tools by default for common workflows; use granular tools when you need targeted control.
|
|
180
|
+
|
|
133
181
|
**Granular tools** -- building blocks for custom queries:
|
|
134
182
|
|
|
135
183
|
| Tool | What It Replaces |
|
|
@@ -193,9 +241,11 @@ The governance framework is domain-aware. Domain packs teach the adversarial rev
|
|
|
193
241
|
| embedded | Memory constraints, real-time deadlines, OTA safety |
|
|
194
242
|
| research | Reproducibility, statistical rigor, experiment protocol |
|
|
195
243
|
|
|
244
|
+
This keeps governance strict where risk is high and lightweight where speed matters, without rewriting the core framework.
|
|
245
|
+
|
|
196
246
|
```bash
|
|
197
|
-
scaffold
|
|
198
|
-
scaffold
|
|
247
|
+
scaffold domains add trading
|
|
248
|
+
scaffold domains add webapp
|
|
199
249
|
```
|
|
200
250
|
|
|
201
251
|
## Documentation
|
|
@@ -1,11 +1,35 @@
|
|
|
1
1
|
# AgentScaffold Documentation
|
|
2
2
|
|
|
3
|
+
## Choose Your Path
|
|
4
|
+
|
|
5
|
+
AgentScaffold supports two interaction modes:
|
|
6
|
+
|
|
7
|
+
- **Interactive Prompting Path (NL + MCP)**: You work in chat with your agent, and the
|
|
8
|
+
agent maps natural-language intent to governance and graph workflows.
|
|
9
|
+
- **CLI / Automation Path**: You run explicit `scaffold` commands for deterministic
|
|
10
|
+
setup, verification, and unattended workflows.
|
|
11
|
+
|
|
12
|
+
If you already used the governance framework before knowledge graph and MCP tooling,
|
|
13
|
+
start here:
|
|
14
|
+
|
|
15
|
+
- [Migrating Governance Workflow to NL + MCP](migrating-governance-to-nl-mcp.md)
|
|
16
|
+
|
|
17
|
+
## Template Set Included by Init
|
|
18
|
+
|
|
19
|
+
When you run `scaffold init`, AgentScaffold installs the full core planning template set:
|
|
20
|
+
|
|
21
|
+
- `docs/ai/templates/plan_template.md` (feature)
|
|
22
|
+
- `docs/ai/templates/plan_template_bugfix.md` (bugfix)
|
|
23
|
+
- `docs/ai/templates/plan_template_refactor.md` (refactor)
|
|
24
|
+
- plus spike and study templates for discovery and experiment workflows
|
|
25
|
+
|
|
3
26
|
## Guides
|
|
4
27
|
|
|
5
28
|
| Document | Description |
|
|
6
29
|
|----------|-------------|
|
|
7
30
|
| [Getting Started](getting-started.md) | Installation, init, first plan, knowledge graph, review, execution |
|
|
8
31
|
| [User Guide](user-guide.md) | Session workflow, knowledge graph, greenfield onboarding, review patterns, MCP tools |
|
|
32
|
+
| [Migrating Governance to NL + MCP](migrating-governance-to-nl-mcp.md) | Command-heavy to conversational migration while preserving governance rigor |
|
|
9
33
|
| [Configuration](configuration.md) | Full scaffold.yaml reference, gates, rigor presets |
|
|
10
34
|
| [Domain Packs](domain-packs.md) | Available packs, installation, using multiple packs |
|
|
11
35
|
| [Creating Domain Packs](creating-domain-packs.md) | Structure, manifest, prompts, standards |
|
|
@@ -224,6 +224,22 @@ Only applies when `profile: semi_autonomous` or `semi_autonomous.enabled: true`.
|
|
|
224
224
|
|
|
225
225
|
---
|
|
226
226
|
|
|
227
|
+
## freshness
|
|
228
|
+
|
|
229
|
+
Controls optional async graph freshness behavior for MCP tool calls.
|
|
230
|
+
|
|
231
|
+
| Field | Type | Default | Description |
|
|
232
|
+
|-------|------|---------|-------------|
|
|
233
|
+
| async_enabled | bool | true | Enable cheap request-path freshness checks and background refresh scheduling |
|
|
234
|
+
| debounce_seconds | int | 120 | Minimum interval between refresh trigger attempts |
|
|
235
|
+
| gate_strict | bool | false | Defer gate-transition calls when freshness is stale/unknown/refreshing |
|
|
236
|
+
| background_queue_enabled | bool | true | Coalesce in-flight refresh triggers by setting a pending rerun |
|
|
237
|
+
|
|
238
|
+
When enabled, MCP request handlers avoid synchronous re-indexing. They return freshness
|
|
239
|
+
metadata and schedule eligible refreshes asynchronously.
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
227
243
|
## How Gates Interact with Lifecycle
|
|
228
244
|
|
|
229
245
|
```
|
|
@@ -17,7 +17,7 @@ my_domain/
|
|
|
17
17
|
threat_model_my_domain.md.j2
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
The pack directory name (e.g. `my_domain`) is the pack identifier used with `scaffold
|
|
20
|
+
The pack directory name (e.g. `my_domain`) is the pack identifier used with `scaffold domains add my_domain`.
|
|
21
21
|
|
|
22
22
|
## manifest.yaml Format
|
|
23
23
|
|
|
@@ -98,6 +98,25 @@ Use tables only for pass/fail checklists (short cell values).
|
|
|
98
98
|
|
|
99
99
|
Reference the plan file, system architecture, and interface contracts. The agent will apply this prompt to the current plan.
|
|
100
100
|
|
|
101
|
+
## Designing Prompts for Natural Invocation
|
|
102
|
+
|
|
103
|
+
Most users will trigger your pack via conversational prompts, not explicit tool names.
|
|
104
|
+
Write prompts so they are easy for an agent to route from natural language:
|
|
105
|
+
|
|
106
|
+
- Use review titles and phrasing that match how humans ask (e.g., "quant architect review",
|
|
107
|
+
"product design review", "deployment safety review").
|
|
108
|
+
- Include a short "When to use" phrase near the top that mirrors likely user requests.
|
|
109
|
+
- Keep output instructions deterministic so routing confidence can stay high.
|
|
110
|
+
|
|
111
|
+
Example natural invocations your prompt should support:
|
|
112
|
+
|
|
113
|
+
- "Review this plan like a quant architect."
|
|
114
|
+
- "Pressure-test this API plan for backward compatibility."
|
|
115
|
+
- "Before implementation, run deployment safety checks."
|
|
116
|
+
|
|
117
|
+
If the naming in `manifest.yaml` and the prompt header diverge too much from user language,
|
|
118
|
+
agents are more likely to fall back to generic review behavior.
|
|
119
|
+
|
|
101
120
|
## Writing Standards
|
|
102
121
|
|
|
103
122
|
Standards should be actionable with concrete examples:
|
|
@@ -146,7 +165,7 @@ For static content that works in any project, avoid template variables. If you n
|
|
|
146
165
|
|
|
147
166
|
```bash
|
|
148
167
|
cd /path/to/test-project
|
|
149
|
-
scaffold
|
|
168
|
+
scaffold domains add my_domain
|
|
150
169
|
```
|
|
151
170
|
|
|
152
171
|
3. **Verify installation**: Check that files appear in `docs/ai/prompts/`, `docs/ai/standards/`, and `scaffold.yaml` was updated.
|
|
@@ -33,9 +33,13 @@ When you install a domain pack, its files are copied into your project and its s
|
|
|
33
33
|
From your project root:
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
|
-
scaffold
|
|
36
|
+
scaffold domains add trading
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
+
Use `scaffold domains ...` commands for setup and configuration. For day-to-day usage in
|
|
40
|
+
chat sessions, use natural-language prompts so the agent applies domain prompts through
|
|
41
|
+
its governance/review flow.
|
|
42
|
+
|
|
39
43
|
This will:
|
|
40
44
|
|
|
41
45
|
1. Copy prompts to `docs/ai/prompts/`
|
|
@@ -46,7 +50,7 @@ This will:
|
|
|
46
50
|
List available and installed packs:
|
|
47
51
|
|
|
48
52
|
```bash
|
|
49
|
-
scaffold
|
|
53
|
+
scaffold domains list
|
|
50
54
|
```
|
|
51
55
|
|
|
52
56
|
## What Gets Added to Your Project
|
|
@@ -70,13 +74,25 @@ When you run `scaffold agents generate`, the generated AGENTS.md includes:
|
|
|
70
74
|
|
|
71
75
|
The agent reads AGENTS.md and applies these rules during plan review and execution.
|
|
72
76
|
|
|
77
|
+
## NL Prompt Patterns After Installation
|
|
78
|
+
|
|
79
|
+
After installing packs, trigger domain behavior conversationally:
|
|
80
|
+
|
|
81
|
+
- "Review plan 042 like a quant architect and challenge risk assumptions."
|
|
82
|
+
- "Before implementation, run product design and accessibility scrutiny for this plan."
|
|
83
|
+
- "Do a full adversarial review with both trading and webapp perspectives."
|
|
84
|
+
- "Re-check the plan for domain-specific failure modes before we proceed."
|
|
85
|
+
|
|
86
|
+
These prompts should route the agent into the same governance gates as explicit command
|
|
87
|
+
flows while reducing interaction friction.
|
|
88
|
+
|
|
73
89
|
## Using Multiple Domain Packs
|
|
74
90
|
|
|
75
91
|
You can install multiple packs. For example, a trading web app might use:
|
|
76
92
|
|
|
77
93
|
```bash
|
|
78
|
-
scaffold
|
|
79
|
-
scaffold
|
|
94
|
+
scaffold domains add trading
|
|
95
|
+
scaffold domains add webapp
|
|
80
96
|
```
|
|
81
97
|
|
|
82
98
|
Both packs' prompts and standards are merged. When a plan touches trading and UI:
|
|
@@ -85,6 +101,10 @@ Both packs' prompts and standards are merged. When a plan touches trading and UI
|
|
|
85
101
|
- Both domains' standards apply
|
|
86
102
|
- Approval gates from both packs are enforced
|
|
87
103
|
|
|
104
|
+
Prompt example for dual-domain plans:
|
|
105
|
+
|
|
106
|
+
> "Let's review this plan with quant architect and product design lenses before implementation."
|
|
107
|
+
|
|
88
108
|
If prompts or standards from different packs conflict, the agent uses the most specific one for the plan's scope. For overlapping concerns, document your preference in the plan or in `docs/ai/standards/`.
|
|
89
109
|
|
|
90
110
|
## Creating Custom Domain Packs
|
|
@@ -64,7 +64,7 @@ my-project/
|
|
|
64
64
|
.cursor/rules.md # Cursor-specific rules
|
|
65
65
|
docs/
|
|
66
66
|
ai/
|
|
67
|
-
templates/ # Plan, spike
|
|
67
|
+
templates/ # Plan templates (feature/bugfix/refactor), plus spike and study
|
|
68
68
|
prompts/ # Devil's advocate, expansion, retrospective
|
|
69
69
|
standards/ # Error handling, logging, testing
|
|
70
70
|
state/ # workflow_state, learnings_tracker, plan_completion_log
|
|
@@ -80,6 +80,9 @@ my-project/
|
|
|
80
80
|
- **AGENTS.md**: The agent reads this file to learn the plan lifecycle, gates, and collaboration protocol.
|
|
81
81
|
- **scaffold.yaml**: Edit this to change rigor, gates, domains, or semi-autonomous settings.
|
|
82
82
|
- **docs/ai/**: Source of truth for templates, prompts, and state. The agent references these paths.
|
|
83
|
+
- **Plan templates included**: `docs/ai/templates/plan_template.md`,
|
|
84
|
+
`docs/ai/templates/plan_template_bugfix.md`, and
|
|
85
|
+
`docs/ai/templates/plan_template_refactor.md`.
|
|
83
86
|
|
|
84
87
|
## 4. Creating Your First Plan
|
|
85
88
|
|
|
@@ -177,7 +180,61 @@ This indexes your codebase into a local graph database (`.scaffold/graph.db`). F
|
|
|
177
180
|
|
|
178
181
|
See the [Knowledge Graph section of the User Guide](user-guide.md#knowledge-graph-codebase-intelligence) for details on querying, MCP tools, and review integration.
|
|
179
182
|
|
|
180
|
-
|
|
183
|
+
### Optional: Enable Async Freshness for MCP Sessions
|
|
184
|
+
|
|
185
|
+
If your repository is large and incremental indexing is slow, enable async freshness so MCP
|
|
186
|
+
tool calls stay fast while graph refresh happens in the background.
|
|
187
|
+
|
|
188
|
+
In `scaffold.yaml`:
|
|
189
|
+
|
|
190
|
+
```yaml
|
|
191
|
+
freshness:
|
|
192
|
+
async_enabled: true
|
|
193
|
+
debounce_seconds: 120
|
|
194
|
+
gate_strict: false
|
|
195
|
+
background_queue_enabled: true
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Behavior:
|
|
199
|
+
|
|
200
|
+
- Request path runs a cheap freshness check and returns immediately.
|
|
201
|
+
- Eligible composite workflows schedule background `index --incremental` refreshes.
|
|
202
|
+
- Tool metadata includes freshness state (`fresh`, `stale`, `unknown`, `refreshing`).
|
|
203
|
+
- With `gate_strict: true`, lifecycle-gate transitions can defer until freshness is restored.
|
|
204
|
+
|
|
205
|
+
## 10. Switch from Command-Heavy to NL + MCP
|
|
206
|
+
|
|
207
|
+
If you previously drove every step with explicit structural commands, this is the point to
|
|
208
|
+
switch to conversational prompting while preserving the same governance rigor.
|
|
209
|
+
|
|
210
|
+
Readiness checklist:
|
|
211
|
+
|
|
212
|
+
- [ ] MCP is configured for your platform (see [Platform Integration](platform-integration.md)).
|
|
213
|
+
- [ ] You ran `scaffold index` at least once.
|
|
214
|
+
- [ ] You regenerated rules after config/domain changes:
|
|
215
|
+
- `scaffold agents generate`
|
|
216
|
+
- `scaffold agents cursor` (or `scaffold agents windsurf` / `scaffold agents claude`)
|
|
217
|
+
|
|
218
|
+
First 5 prompts to replace command-heavy orchestration:
|
|
219
|
+
|
|
220
|
+
1. "Let's prepare to review plan 001 with evidence and challenge assumptions."
|
|
221
|
+
2. "Before implementation, check whether plan 001 is stale and dependency-complete."
|
|
222
|
+
3. "Compare plan 001 and plan 002 for overlap before we proceed."
|
|
223
|
+
4. "Where did we leave off on plan 001 and what are blockers?"
|
|
224
|
+
5. "Prepare retro context for plan 001 with prior findings and studies."
|
|
225
|
+
|
|
226
|
+
Keep explicit commands for verification/operations:
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
scaffold index --incremental
|
|
230
|
+
scaffold graph verify
|
|
231
|
+
scaffold validate
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
For a full migration guide, see
|
|
235
|
+
[Migrating Governance to NL + MCP](migrating-governance-to-nl-mcp.md).
|
|
236
|
+
|
|
237
|
+
## 11. Next Steps
|
|
181
238
|
|
|
182
239
|
- **Domain packs**: Add specialized reviews and standards. See [Domain Packs](domain-packs.md).
|
|
183
240
|
- **Semi-autonomous mode**: Enable for CLI-triggered agents. See [Semi-Autonomous Guide](semi-autonomous-guide.md).
|
|
@@ -22,6 +22,48 @@ scaffold index # Build knowledge graph
|
|
|
22
22
|
|
|
23
23
|
After this, your project has `AGENTS.md` at the root and `.scaffold/graph.db` with the indexed knowledge graph. The agent rules in `AGENTS.md` work immediately with any agent that reads project files.
|
|
24
24
|
|
|
25
|
+
## Verify NL Intent Routing
|
|
26
|
+
|
|
27
|
+
Before long sessions, run a quick smoke check in chat to confirm the agent is interpreting
|
|
28
|
+
intent and routing to MCP workflows (or falling back cleanly when needed):
|
|
29
|
+
|
|
30
|
+
1. "Let's prepare to review plan 042 with evidence."
|
|
31
|
+
- Expected behavior: review-prep/composite context workflow.
|
|
32
|
+
2. "Where did we leave off and what are blockers?"
|
|
33
|
+
- Expected behavior: orientation/status workflow.
|
|
34
|
+
3. "Show me the decision chain behind plan 042."
|
|
35
|
+
- Expected behavior: ADR/spike/study decision-context workflow.
|
|
36
|
+
|
|
37
|
+
If routing is weak or MCP tools are unavailable:
|
|
38
|
+
|
|
39
|
+
- Rebuild freshness: `scaffold index --incremental`
|
|
40
|
+
- Regenerate rules: `scaffold agents generate` and platform-specific rules command
|
|
41
|
+
- Continue in hybrid mode: explicit CLI commands for critical checks + NL orchestration
|
|
42
|
+
|
|
43
|
+
This verification should take under two minutes and catches setup drift early.
|
|
44
|
+
|
|
45
|
+
### Async Freshness (Recommended for Large Repos)
|
|
46
|
+
|
|
47
|
+
If incremental indexing is heavy in your codebase, enable async freshness in `scaffold.yaml`.
|
|
48
|
+
This keeps MCP request-path latency low by scheduling refresh in the background instead of
|
|
49
|
+
blocking tool calls.
|
|
50
|
+
|
|
51
|
+
```yaml
|
|
52
|
+
freshness:
|
|
53
|
+
async_enabled: true
|
|
54
|
+
debounce_seconds: 120
|
|
55
|
+
gate_strict: false
|
|
56
|
+
background_queue_enabled: true
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Operational notes:
|
|
60
|
+
|
|
61
|
+
- Composite tools are eligible refresh triggers; refresh scheduling is debounced.
|
|
62
|
+
- Single-flight locking prevents duplicate refresh jobs during parallel tool usage.
|
|
63
|
+
- Tool responses include freshness metadata so the agent can disclose confidence.
|
|
64
|
+
- For stricter governance, set `gate_strict: true` to defer gate transitions when freshness
|
|
65
|
+
is stale/unknown.
|
|
66
|
+
|
|
25
67
|
---
|
|
26
68
|
|
|
27
69
|
## Cursor
|
|
@@ -232,6 +274,9 @@ scaffold graph stats
|
|
|
232
274
|
|
|
233
275
|
You can pipe CLI output into aider's context or use it to inform your prompts.
|
|
234
276
|
|
|
277
|
+
For aider, the practical target mode is **hybrid**: conversational planning and governance
|
|
278
|
+
prompts, with explicit CLI graph/review commands for context retrieval.
|
|
279
|
+
|
|
235
280
|
---
|
|
236
281
|
|
|
237
282
|
## Codex (OpenAI)
|
|
@@ -14,6 +14,23 @@ Each phase has specific trigger phrases and expectations. The sections below det
|
|
|
14
14
|
|
|
15
15
|
But first -- if you don't have any plans yet because you're starting a brand new project, read the Greenfield Onboarding section below.
|
|
16
16
|
|
|
17
|
+
### Canonical Session Flow (NL + MCP Variant)
|
|
18
|
+
|
|
19
|
+
If MCP is configured and indexed, you can run the same lifecycle with less command
|
|
20
|
+
choreography. Instead of naming each tool, describe the outcome:
|
|
21
|
+
|
|
22
|
+
| Phase | Command-Heavy Directive | NL + MCP Directive |
|
|
23
|
+
|-------|-------------------------|--------------------|
|
|
24
|
+
| Open | "Run review brief for plan 042" | "Let's prepare to review plan 042 with evidence." |
|
|
25
|
+
| Assess | "Run staleness check" | "Is this plan stale after recent architecture changes?" |
|
|
26
|
+
| Review | "Run critique + expansion + domain review" | "Pressure-test this plan and surface edge cases before implementation." |
|
|
27
|
+
| Gaps Sweep | "Re-run all review outputs and list gaps" | "Do a full second-pass gap sweep across all review findings." |
|
|
28
|
+
| Execute | "Proceed with step-by-step implementation" | "Begin implementation and follow plan steps in order." |
|
|
29
|
+
| Close Out | "Run retro and update state files" | "Prepare retro context and complete close-out updates." |
|
|
30
|
+
|
|
31
|
+
Use explicit commands when you need deterministic verification, reproducible outputs, or
|
|
32
|
+
platform fallback.
|
|
33
|
+
|
|
17
34
|
---
|
|
18
35
|
|
|
19
36
|
## Greenfield Onboarding: Starting from Scratch
|
|
@@ -724,6 +741,35 @@ the flow has completed. lets review the findings
|
|
|
724
741
|
|
|
725
742
|
---
|
|
726
743
|
|
|
744
|
+
## Migration Guide for Governance-First Users
|
|
745
|
+
|
|
746
|
+
If you used AgentScaffold before knowledge graph/MCP integration, the safest shift is:
|
|
747
|
+
|
|
748
|
+
1. **Hybrid first**: use NL prompts for orchestration, keep CLI verification explicit.
|
|
749
|
+
2. **Verify behavior**: confirm the agent is routing to MCP context/review tools first.
|
|
750
|
+
3. **Keep rigor fixed**: pre-reviews, gap sweep, validation, retro, and state updates stay mandatory.
|
|
751
|
+
|
|
752
|
+
Phase-by-phase translation:
|
|
753
|
+
|
|
754
|
+
| Old Structural Pattern | NL Prompt Pattern | Expected Tool Family |
|
|
755
|
+
|------------------------|-------------------|----------------------|
|
|
756
|
+
| "run review brief/challenges for plan X" | "prepare to review plan X with evidence" | composite review tools |
|
|
757
|
+
| "run staleness check on plan X" | "is plan X stale after recent changes?" | staleness/validation tools |
|
|
758
|
+
| "run impact on file/symbol Y" | "what is the blast radius of Y?" | impact/context tools |
|
|
759
|
+
| "gather ADR/spike/study history" | "show the decision chain behind this plan" | decision context tools |
|
|
760
|
+
| "run retro prep and findings pull" | "prepare retro context for this plan" | retro/studies tools |
|
|
761
|
+
|
|
762
|
+
Fallback and override guardrails:
|
|
763
|
+
|
|
764
|
+
- If MCP is unavailable, fall back to direct read/search and keep governance sequence intact.
|
|
765
|
+
- If graph might be stale, run `scaffold index --incremental` before continuing.
|
|
766
|
+
- Keep explicit validation commands (`scaffold validate`, `scaffold graph verify`) before completion.
|
|
767
|
+
|
|
768
|
+
For a focused migration path, see
|
|
769
|
+
[Migrating Governance to NL + MCP](migrating-governance-to-nl-mcp.md).
|
|
770
|
+
|
|
771
|
+
---
|
|
772
|
+
|
|
727
773
|
## Knowledge Graph: Codebase Intelligence
|
|
728
774
|
|
|
729
775
|
AgentScaffold can build a knowledge graph of your codebase using `scaffold index`. This graph powers several features: auto-enriched templates, graph-backed reviews, MCP tool integration, and a living Codebase Intelligence section in AGENTS.md.
|
|
@@ -761,6 +807,29 @@ scaffold index --incremental
|
|
|
761
807
|
|
|
762
808
|
Incremental mode compares SHA-256 content hashes of files on disk against those stored in the graph. Only files that were added, modified, or deleted since the last index are processed. On a large codebase where only a handful of files changed, this is dramatically faster than a full re-index.
|
|
763
809
|
|
|
810
|
+
### Async Freshness for MCP (Large-Repo UX)
|
|
811
|
+
|
|
812
|
+
For large repositories, even incremental re-indexing can still take too long to run
|
|
813
|
+
inline with tool calls. Async freshness mode separates freshness checks from refresh work:
|
|
814
|
+
|
|
815
|
+
- Request path performs a cheap freshness oracle check.
|
|
816
|
+
- Eligible composite tools schedule background incremental refreshes.
|
|
817
|
+
- Debounce and single-flight locking avoid refresh storms.
|
|
818
|
+
- Responses include freshness state so the agent can communicate confidence.
|
|
819
|
+
|
|
820
|
+
Enable in `scaffold.yaml`:
|
|
821
|
+
|
|
822
|
+
```yaml
|
|
823
|
+
freshness:
|
|
824
|
+
async_enabled: true
|
|
825
|
+
debounce_seconds: 120
|
|
826
|
+
gate_strict: false
|
|
827
|
+
background_queue_enabled: true
|
|
828
|
+
```
|
|
829
|
+
|
|
830
|
+
If you need strict lifecycle control, set `gate_strict: true` so gate transitions defer
|
|
831
|
+
when graph freshness is stale or unknown.
|
|
832
|
+
|
|
764
833
|
The changeset output shows exactly what changed:
|
|
765
834
|
```
|
|
766
835
|
Incremental index -- computing changeset...
|