icdev 0.0.3__py3-none-any.whl
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.
- args/agent_config.yaml +113 -0
- args/audit_regimes/cisa_sbd.json +381 -0
- args/audit_regimes/cmmc_l2.json +906 -0
- args/audit_regimes/dod_cssp.json +393 -0
- args/audit_regimes/dodi_5000_87.json +297 -0
- args/audit_regimes/fedramp_moderate.json +650 -0
- args/audit_regimes/ieee_1012.json +373 -0
- args/audit_regimes/nist_800_171.json +624 -0
- args/audit_regimes/nist_800_53.json +907 -0
- args/cloudforge_blueprints/aws_commercial.yaml +29 -0
- args/cloudforge_blueprints/aws_govcloud_il4.yaml +34 -0
- args/cloudforge_blueprints/aws_govcloud_il5.yaml +38 -0
- args/cloudforge_blueprints/azure_commercial.yaml +28 -0
- args/cloudforge_blueprints/azure_gov_il4.yaml +32 -0
- args/cloudforge_blueprints/azure_gov_il5.yaml +36 -0
- args/cloudforge_blueprints/gcp_commercial.yaml +28 -0
- args/cloudforge_blueprints/oci_commercial.yaml +28 -0
- args/cloudforge_config.yaml +231 -0
- args/cloudforge_runbook_templates/backup_verify.yaml +98 -0
- args/cloudforge_runbook_templates/dr_failover.yaml +107 -0
- args/cloudforge_runbook_templates/health_check.yaml +97 -0
- args/cloudforge_runbook_templates/incident_response.yaml +101 -0
- args/cloudforge_runbook_templates/migration_cutover.yaml +105 -0
- args/cloudforge_runbook_templates/patch_rollout.yaml +92 -0
- args/cloudforge_runbook_templates/zone_provision.yaml +93 -0
- args/code_pattern_config.yaml +151 -0
- args/code_quality_config.yaml +47 -0
- args/compliance_config.yaml +17 -0
- args/control_inheritance.yaml +177 -0
- args/csp_mcp_config.yaml +41 -0
- args/cui_markings.yaml +35 -0
- args/databridge_config.yaml +232 -0
- args/db_config.yaml +116 -0
- args/decision_tables/agent_trust_decision.yaml +143 -0
- args/decision_tables/ato_boundary_impact.yaml +132 -0
- args/decision_tables/deployment_approval.yaml +152 -0
- args/degradation_matrix.yaml +163 -0
- args/devsecops_config.yaml +286 -0
- args/endpoint_security_config.yaml +207 -0
- args/exit_criteria.yaml +102 -0
- args/feature_flags.yaml +235 -0
- args/file_access_tiers.yaml +88 -0
- args/forge_studio/blueprint_config.yaml +27 -0
- args/forge_studio/component_catalog.json +411 -0
- args/forge_studio/workflow_templates.yaml +103 -0
- args/govcon_config.yaml +41 -0
- args/harness_config.yaml +67 -0
- args/innovation_config.yaml +321 -0
- args/knowledge_graph_config.yaml +113 -0
- args/llm_config.yaml +222 -0
- args/marketplace_config.yaml +260 -0
- args/monitoring_config.yaml +127 -0
- args/mosa_config.yaml +190 -0
- args/observability_tracing_config.yaml +170 -0
- args/owasp_agentic_config.yaml +171 -0
- args/pipeline_gates.yaml +197 -0
- args/project_defaults.yaml +235 -0
- args/prompt_chains.yaml +163 -0
- args/rag_config.yaml +167 -0
- args/research_config.yaml +89 -0
- args/resilience_config.yaml +197 -0
- args/ricoas_config.yaml +191 -0
- args/security_gates.yaml +763 -0
- args/storage_config.yaml +63 -0
- args/writeguard_config.yaml +131 -0
- args/zta_config.yaml +247 -0
- context/__init__.py +6 -0
- context/agent/__init__.py +6 -0
- context/agent/response_schemas/__init__.py +6 -0
- context/agent/response_schemas/debate_position.json +46 -0
- context/agent/response_schemas/fitness_scorecard.json +74 -0
- context/agent/response_schemas/review_decision.json +39 -0
- context/agent/response_schemas/task_decomposition.json +82 -0
- context/agent/response_schemas/veto_decision.json +40 -0
- context/agentic/__init__.py +6 -0
- context/agentic/architecture_patterns.md +269 -0
- context/agentic/capability_registry.yaml +223 -0
- context/agentic/csp_integration.md +30 -0
- context/agentic/csp_mcp_registry.yaml +280 -0
- context/agentic/fitness_rubric.md +56 -0
- context/agentic/governance_baseline.md +205 -0
- context/ci/__init__.py +6 -0
- context/ci/worktree_templates.json +44 -0
- context/cloud/__init__.py +6 -0
- context/cloud/csp_service_registry.json +739 -0
- context/compliance/__init__.py +6 -0
- context/compliance/ai_rmf_crosswalk.yaml +226 -0
- context/compliance/atlas_mitigations.json +293 -0
- context/compliance/atlas_techniques.json +833 -0
- context/compliance/cisa_sbd_requirements.json +477 -0
- context/compliance/cjis_security_policy.json +522 -0
- context/compliance/cmmc_practices.json +2494 -0
- context/compliance/cmmc_report_template.md +142 -0
- context/compliance/cnssi_1253_overlay.json +109 -0
- context/compliance/control_crosswalk.json +1914 -0
- context/compliance/control_families/__init__.py +6 -0
- context/compliance/csp_certifications.json +251 -0
- context/compliance/cssp_report_template.md +193 -0
- context/compliance/cui_templates/__init__.py +6 -0
- context/compliance/cui_templates/banner_block.txt +4 -0
- context/compliance/cui_templates/code_header.txt +8 -0
- context/compliance/cui_templates/document_template.md +35 -0
- context/compliance/data_type_framework_map.json +321 -0
- context/compliance/data_type_registry.json +147 -0
- context/compliance/dod_cssp_8530.json +463 -0
- context/compliance/eu_ai_act_annex_iii.json +108 -0
- context/compliance/export_templates/__init__.py +6 -0
- context/compliance/export_templates/emass_controls.csv.j2 +4 -0
- context/compliance/export_templates/evidence_package.md.j2 +39 -0
- context/compliance/export_templates/executive_summary.md.j2 +55 -0
- context/compliance/export_templates/poam_tracking.csv.j2 +4 -0
- context/compliance/fedramp_20x_ksi_schemas.json +133 -0
- context/compliance/fedramp_high_baseline.json +4370 -0
- context/compliance/fedramp_moderate_baseline.json +2183 -0
- context/compliance/fedramp_report_template.md +181 -0
- context/compliance/fips_200_areas.json +362 -0
- context/compliance/gao_ai_accountability.json +262 -0
- context/compliance/hipaa_security_rule.json +720 -0
- context/compliance/hitrust_csf_v11.json +930 -0
- context/compliance/impact_level_profiles.json +251 -0
- context/compliance/incident_response_template.md +1110 -0
- context/compliance/iso27001_2022_controls.json +750 -0
- context/compliance/iso27001_nist_bridge.json +382 -0
- context/compliance/iso42001_controls.json +254 -0
- context/compliance/ivv_checklist_template.md +80 -0
- context/compliance/ivv_report_template.md +116 -0
- context/compliance/ivv_requirements.json +372 -0
- context/compliance/mosa_crosswalk.json +327 -0
- context/compliance/mosa_framework.json +250 -0
- context/compliance/narrative_templates/AC.md.j2 +101 -0
- context/compliance/narrative_templates/AU.md.j2 +106 -0
- context/compliance/narrative_templates/IA.md.j2 +104 -0
- context/compliance/narrative_templates/SC.md.j2 +102 -0
- context/compliance/narrative_templates/SI.md.j2 +111 -0
- context/compliance/narrative_templates/__init__.py +6 -0
- context/compliance/narrative_templates/default.md.j2 +50 -0
- context/compliance/narrative_templates/executive_summary.j2 +27 -0
- context/compliance/narrative_templates/poam_milestone.j2 +19 -0
- context/compliance/narrative_templates/ssp_section.j2 +11 -0
- context/compliance/nist_800_171_controls.json +1552 -0
- context/compliance/nist_800_207_crosswalk.json +399 -0
- context/compliance/nist_800_207_zta.json +258 -0
- context/compliance/nist_800_53.json +324 -0
- context/compliance/nist_ai_600_1_genai.json +326 -0
- context/compliance/nist_ai_rmf.json +206 -0
- context/compliance/nist_sp_800_60_types.json +1667 -0
- context/compliance/omb_m25_21_high_impact_ai.json +248 -0
- context/compliance/omb_m26_04_unbiased_ai.json +262 -0
- context/compliance/owasp_agentic_asi.json +133 -0
- context/compliance/owasp_agentic_threats.json +285 -0
- context/compliance/owasp_llm_top10.json +274 -0
- context/compliance/pci_dss_v4.json +510 -0
- context/compliance/poam_template.md +117 -0
- context/compliance/safeai_controls.json +512 -0
- context/compliance/sbd_report_template.md +77 -0
- context/compliance/siem_config_templates/__init__.py +6 -0
- context/compliance/siem_config_templates/filebeat.yml +213 -0
- context/compliance/siem_config_templates/log_sources.json +208 -0
- context/compliance/soc2_trust_criteria.json +661 -0
- context/compliance/ssp_template.md +432 -0
- context/compliance/stig_templates/__init__.py +6 -0
- context/compliance/stig_templates/webapp_stig.json +139 -0
- context/compliance/xai_requirements.json +108 -0
- context/dashboard/__init__.py +6 -0
- context/dashboard/nlq_examples.json +50 -0
- context/dashboard/schema_descriptions.json +23 -0
- context/icdev_methodology.md +100 -0
- context/integration/__init__.py +6 -0
- context/integration/approval_workflows.json +32 -0
- context/integration/gitlab_field_mappings.json +33 -0
- context/integration/jira_field_mappings.json +32 -0
- context/integration/reqif_export_schema.json +23 -0
- context/integration/servicenow_field_mappings.json +22 -0
- context/languages/__init__.py +6 -0
- context/languages/framework_patterns.json +205 -0
- context/languages/language_registry.json +279 -0
- context/llm/__init__.py +6 -0
- context/llm/example_provider.py +89 -0
- context/marketplace/assets/writeguard-core.yaml +100 -0
- context/marketplace/assets/writeguard-govcon.yaml +45 -0
- context/marketplace/assets/writeguard-style-guides.yaml +44 -0
- context/mbse/__init__.py +6 -0
- context/mbse/des_report_template.md +162 -0
- context/mbse/des_requirements.json +411 -0
- context/mbse/digital_thread_patterns.json +403 -0
- context/mbse/reqif_schema.json +280 -0
- context/mbse/sysml_element_types.json +432 -0
- context/oscal/NIST_SP-800-53_rev5_catalog.json +254987 -0
- context/oscal/README.md +43 -0
- context/patterns/__init__.py +6 -0
- context/profiles/__init__.py +6 -0
- context/profiles/dod_baseline_v1.yaml +145 -0
- context/profiles/fedramp_baseline_v1.yaml +143 -0
- context/profiles/financial_baseline_v1.yaml +142 -0
- context/profiles/healthcare_baseline_v1.yaml +135 -0
- context/profiles/law_enforcement_v1.yaml +129 -0
- context/profiles/startup_v1.yaml +134 -0
- context/rag/source_mappings.json +42 -0
- context/requirements/__init__.py +6 -0
- context/requirements/ambiguity_patterns.json +97 -0
- context/requirements/boundary_impact_rules.json +123 -0
- context/requirements/default_constitutions.json +67 -0
- context/requirements/document_extraction_rules.json +58 -0
- context/requirements/gap_patterns.json +108 -0
- context/requirements/readiness_rubric.json +78 -0
- context/requirements/red_alternative_patterns.json +210 -0
- context/requirements/safe_templates.json +72 -0
- context/requirements/spec_quality_checklist.json +122 -0
- context/research/regulatory_registry.json +114 -0
- context/research/verticals/cybersecurity.json +127 -0
- context/research/verticals/defense.json +104 -0
- context/research/verticals/fintech.json +125 -0
- context/research/verticals/healthcare.json +118 -0
- context/research/verticals/logistics.json +117 -0
- context/research/verticals/trading.json +145 -0
- context/simulation/__init__.py +6 -0
- context/simulation/architecture_patterns.json +36 -0
- context/simulation/coa_templates.json +38 -0
- context/simulation/cost_models.json +23 -0
- context/simulation/risk_categories.json +46 -0
- context/supply_chain/__init__.py +6 -0
- context/supply_chain/isa_templates.json +129 -0
- context/supply_chain/nist_800_161_controls.json +247 -0
- context/supply_chain/scrm_risk_matrix.json +147 -0
- context/templates/__init__.py +6 -0
- context/templates/ansible/__init__.py +6 -0
- context/templates/ansible/playbooks/__init__.py +6 -0
- context/templates/ansible/roles/__init__.py +6 -0
- context/templates/gitlab_ci/__init__.py +6 -0
- context/templates/grafana/__init__.py +6 -0
- context/templates/kubernetes/__init__.py +6 -0
- context/templates/project/__init__.py +6 -0
- context/templates/project/api/__init__.py +6 -0
- context/templates/project/cli/__init__.py +6 -0
- context/templates/project/data_pipeline/__init__.py +6 -0
- context/templates/project/iac/__init__.py +6 -0
- context/templates/project/javascript_frontend/__init__.py +6 -0
- context/templates/project/javascript_frontend/src/__init__.py +6 -0
- context/templates/project/javascript_frontend/tests/__init__.py +6 -0
- context/templates/project/microservice/__init__.py +6 -0
- context/templates/project/python_backend/__init__.py +6 -0
- context/templates/project/python_backend/src/__init__.py +6 -0
- context/templates/project/python_backend/tests/__init__.py +6 -0
- context/templates/project/python_backend/tests/features/__init__.py +6 -0
- context/templates/project/python_backend/tests/steps/__init__.py +6 -0
- context/templates/terraform/__init__.py +6 -0
- context/templates/terraform/govcloud_base/__init__.py +6 -0
- context/templates/terraform/modules/__init__.py +6 -0
- context/tone/__init__.py +6 -0
- context/writing/grammar_rules/common_errors.json +306 -0
- context/writing/grammar_rules/govcon_vocabulary.json +113 -0
- context/writing/style_guides/academic.yaml +43 -0
- context/writing/style_guides/business.yaml +42 -0
- context/writing/style_guides/government.yaml +59 -0
- context/writing/style_guides/proposal.yaml +58 -0
- context/writing/style_guides/technical.yaml +43 -0
- docs/adr/README.md +66 -0
- docs/adr/connector-forge-decisions.md +318 -0
- docs/adr/core-decisions.md +289 -0
- docs/adr/db-decisions.md +94 -0
- docs/adr/harness-decisions.md +122 -0
- docs/adr/innovation-decisions.md +262 -0
- docs/adr/marketplace-decisions.md +109 -0
- docs/adr/sbd-decisions.md +109 -0
- docs/adr/scale-engine-decisions.md +108 -0
- docs/adr/writeguard-decisions.md +136 -0
- docs/architecture/bounded-contexts.md +1032 -0
- docs/features/phase-65-writeguard.md +139 -0
- docs/features/phase-66-marketplace-commerce.md +79 -0
- docs/features/phase-67-knowledge-ingestion-rag-autodraft.md +97 -0
- docs/features/phase-68-enhanced-autodraft-pipeline.md +109 -0
- docs/features/phase-69-proposalai-marketplace-module.md +131 -0
- docs/features/phase-70-databridge.md +214 -0
- docs/features/phase-71-databridge-messaging.md +102 -0
- docs/implementation-plan-architecture-evolution.md +614 -0
- docs/marketplace/CONTRIBUTING.md +124 -0
- docs/marketplace/module_manifest_schema.yaml +83 -0
- docs/research/ai-architecture-patterns-2024-2026.md +1236 -0
- docs/research/app-builder-platform-analysis.md +582 -0
- docs/research/architecture-patterns-c4-ddd-agentic.md +871 -0
- docs/research/flowable-boat-competitive-analysis.md +426 -0
- docs/research/modern-dev-practices-2024-2026.md +1615 -0
- docs/research/secure-by-design-cloudyrion-adaptation.md +270 -0
- goals/agent_management.md +144 -0
- goals/ai_accountability.md +90 -0
- goals/ai_narratives.md +79 -0
- goals/ai_transparency.md +76 -0
- goals/ato_simulator.md +78 -0
- goals/audit_engine.md +177 -0
- goals/bite_sized_plans.md +225 -0
- goals/boundary_supply_chain.md +206 -0
- goals/brainstorming_gate.md +186 -0
- goals/build_app.md +604 -0
- goals/cato_live_evidence.md +77 -0
- goals/cloudforge.md +106 -0
- goals/code_intelligence.md +197 -0
- goals/compliance_workflow.md +858 -0
- goals/connector_forge.md +133 -0
- goals/databridge.md +128 -0
- goals/deploy_workflow.md +390 -0
- goals/developer_scorecard.md +78 -0
- goals/devsecops_workflow.md +408 -0
- goals/firmware_sbom.md +79 -0
- goals/forge_hub.md +78 -0
- goals/golden_path.md +77 -0
- goals/harness_engineering.md +91 -0
- goals/integration_testing.md +189 -0
- goals/knowledge_graph.md +128 -0
- goals/maintenance_audit.md +196 -0
- goals/manifest.md +50 -0
- goals/monitoring.md +126 -0
- goals/mosa_workflow.md +463 -0
- goals/multi_agent_orchestration.md +68 -0
- goals/observability_traceability_xai.md +154 -0
- goals/owasp_agentic_security.md +395 -0
- goals/pr_intelligence.md +78 -0
- goals/requirements_intake.md +213 -0
- goals/secure_by_design.md +135 -0
- goals/security_scan.md +381 -0
- goals/self_healing.md +120 -0
- goals/simulation_engine.md +111 -0
- goals/subagent_review.md +205 -0
- goals/systematic_debugging.md +257 -0
- goals/tdd_workflow.md +403 -0
- goals/template_exchange.md +77 -0
- goals/thread_heatmap.md +77 -0
- goals/threat_modeler.md +77 -0
- goals/verification_iron_law.md +192 -0
- goals/vsm_dashboard.md +76 -0
- goals/writeguard.md +89 -0
- goals/zero_trust_architecture.md +403 -0
- hardprompts/__init__.py +6 -0
- hardprompts/agent/__init__.py +6 -0
- hardprompts/agent/agentic_architect.md +100 -0
- hardprompts/agent/debate_prompt.md +32 -0
- hardprompts/agent/fitness_evaluation.md +48 -0
- hardprompts/agent/governance_review.md +214 -0
- hardprompts/agent/reviewer_prompt.md +34 -0
- hardprompts/agent/skill_design.md +172 -0
- hardprompts/agent/task_decomposition.md +275 -0
- hardprompts/agent/veto_check_prompt.md +33 -0
- hardprompts/architect/__init__.py +6 -0
- hardprompts/architect/api_design.md +283 -0
- hardprompts/architect/data_model.md +277 -0
- hardprompts/architect/system_design.md +180 -0
- hardprompts/builder/__init__.py +6 -0
- hardprompts/builder/code_generation.md +59 -0
- hardprompts/builder/refactor.md +58 -0
- hardprompts/builder/scaffold_project.md +69 -0
- hardprompts/builder/test_generation.md +87 -0
- hardprompts/ci/__init__.py +6 -0
- hardprompts/ci/worktree_setup.md +35 -0
- hardprompts/compliance/__init__.py +6 -0
- hardprompts/compliance/cmmc_assessment.md +63 -0
- hardprompts/compliance/cssp_assessment.md +75 -0
- hardprompts/compliance/cui_marking.md +86 -0
- hardprompts/compliance/fedramp_assessment.md +55 -0
- hardprompts/compliance/ivv_assessment.md +96 -0
- hardprompts/compliance/poam_generation.md +57 -0
- hardprompts/compliance/sbd_assessment.md +101 -0
- hardprompts/compliance/security_categorization.md +74 -0
- hardprompts/compliance/ssp_generation.md +56 -0
- hardprompts/compliance/stig_evaluation.md +63 -0
- hardprompts/dashboard/__init__.py +6 -0
- hardprompts/dashboard/nlq_system_prompt.md +26 -0
- hardprompts/infra/__init__.py +6 -0
- hardprompts/infra/k8s_manifests.md +118 -0
- hardprompts/infra/pipeline_generation.md +160 -0
- hardprompts/infra/terraform_generation.md +92 -0
- hardprompts/integration/__init__.py +6 -0
- hardprompts/integration/approval_review.md +17 -0
- hardprompts/integration/jira_mapping.md +25 -0
- hardprompts/integration/servicenow_mapping.md +14 -0
- hardprompts/knowledge/__init__.py +6 -0
- hardprompts/knowledge/pattern_detection.md +73 -0
- hardprompts/knowledge/recommendation_engine.md +90 -0
- hardprompts/knowledge/root_cause_analysis.md +91 -0
- hardprompts/maintenance/__init__.py +6 -0
- hardprompts/maintenance/maintenance_assessment.md +82 -0
- hardprompts/mbse/__init__.py +6 -0
- hardprompts/mbse/digital_thread.md +67 -0
- hardprompts/mbse/model_import.md +62 -0
- hardprompts/mbse/model_to_code.md +65 -0
- hardprompts/modernization/__init__.py +6 -0
- hardprompts/modernization/legacy_analysis.md +93 -0
- hardprompts/modernization/migration_planning.md +150 -0
- hardprompts/modernization/seven_r_assessment.md +107 -0
- hardprompts/proposal_draft.md +53 -0
- hardprompts/rag_citation.md +12 -0
- hardprompts/rag_rerank.md +31 -0
- hardprompts/requirements/__init__.py +6 -0
- hardprompts/requirements/bdd_generation.md +35 -0
- hardprompts/requirements/clarification_prioritization.md +29 -0
- hardprompts/requirements/decomposition.md +60 -0
- hardprompts/requirements/document_extraction.md +45 -0
- hardprompts/requirements/gap_detection.md +70 -0
- hardprompts/requirements/intake_conversation.md +101 -0
- hardprompts/requirements/readiness_assessment.md +39 -0
- hardprompts/requirements/spec_quality.md +33 -0
- hardprompts/requirements/traceability_analysis.md +23 -0
- hardprompts/security/__init__.py +6 -0
- hardprompts/security/endpoint_security.md +78 -0
- hardprompts/security/threat_model.md +70 -0
- hardprompts/security/vulnerability_assessment.md +81 -0
- hardprompts/simulation/__init__.py +6 -0
- hardprompts/simulation/architecture_impact.md +27 -0
- hardprompts/simulation/coa_alternative.md +27 -0
- hardprompts/simulation/coa_generation.md +25 -0
- hardprompts/simulation/compliance_impact.md +28 -0
- hardprompts/simulation/cost_estimation.md +33 -0
- hardprompts/simulation/risk_assessment.md +28 -0
- hardprompts/translation/code_translation.md +68 -0
- hardprompts/translation/dependency_suggestion.md +44 -0
- hardprompts/translation/test_translation.md +64 -0
- hardprompts/translation/translation_repair.md +59 -0
- icdev-0.0.3.dist-info/METADATA +909 -0
- icdev-0.0.3.dist-info/RECORD +1214 -0
- icdev-0.0.3.dist-info/WHEEL +5 -0
- icdev-0.0.3.dist-info/entry_points.txt +9 -0
- icdev-0.0.3.dist-info/licenses/LICENSE +201 -0
- icdev-0.0.3.dist-info/licenses/NOTICE +11 -0
- icdev-0.0.3.dist-info/top_level.txt +7 -0
- memory/MEMORY.md +52 -0
- memory/logs/2026-02-14.md +17 -0
- memory/logs/2026-03-03.md +2 -0
- memory/logs/__init__.py +1 -0
- tools/a2a/icdev_callback_client.py +210 -0
- tools/agent/cards/architect_card.json +29 -0
- tools/agent/cards/builder_card.json +34 -0
- tools/agent/cards/compliance_card.json +29 -0
- tools/agent/cards/connector_forge_card.json +49 -0
- tools/agent/cards/devsecops_zta_card.json +24 -0
- tools/agent/cards/knowledge_card.json +29 -0
- tools/agent/cards/monitor_card.json +29 -0
- tools/agent/cards/orchestrator_card.json +29 -0
- tools/agent/cards/requirements_analyst_card.json +24 -0
- tools/agent/cards/security_card.json +29 -0
- tools/agent/cards/simulation_card.json +24 -0
- tools/agent/cards/supply_chain_card.json +24 -0
- tools/analysis/__init__.py +1 -0
- tools/analysis/code_analyzer.py +770 -0
- tools/analysis/runtime_feedback.py +379 -0
- tools/analytics/__init__.py +2 -0
- tools/analytics/scorecard.py +538 -0
- tools/analytics/vsm_engine.py +612 -0
- tools/architecture/__init__.py +2 -0
- tools/architecture/adr_extractor.py +393 -0
- tools/audit/__init__.py +1 -0
- tools/audit/audit_logger.py +199 -0
- tools/audit/audit_query.py +153 -0
- tools/audit/decision_recorder.py +73 -0
- tools/audit_engine/__init__.py +12 -0
- tools/audit_engine/ai_advisor.py +906 -0
- tools/audit_engine/cli.py +286 -0
- tools/audit_engine/comparator.py +305 -0
- tools/audit_engine/eject_scaffolder.py +399 -0
- tools/audit_engine/engine.py +614 -0
- tools/audit_engine/git_fetcher.py +341 -0
- tools/audit_engine/regime_loader.py +200 -0
- tools/audit_engine/regime_updater.py +325 -0
- tools/audit_engine/report_card.py +289 -0
- tools/audit_engine/scanner.py +684 -0
- tools/audit_engine/self_heal.py +1042 -0
- tools/ci/__init__.py +2 -0
- tools/ci/connectors/__init__.py +2 -0
- tools/ci/connectors/base_connector.py +80 -0
- tools/ci/connectors/connector_registry.py +188 -0
- tools/ci/connectors/mattermost_connector.py +159 -0
- tools/ci/connectors/slack_connector.py +197 -0
- tools/ci/core/__init__.py +2 -0
- tools/ci/core/air_gap_detector.py +115 -0
- tools/ci/core/comment_handler.py +192 -0
- tools/ci/core/conversation_manager.py +480 -0
- tools/ci/core/event_envelope.py +500 -0
- tools/ci/core/event_router.py +444 -0
- tools/ci/core/failure_parser.py +397 -0
- tools/ci/core/recovery_engine.py +527 -0
- tools/ci/gate_enforcer.py +361 -0
- tools/ci/modules/__init__.py +2 -0
- tools/ci/modules/agent.py +271 -0
- tools/ci/modules/git_ops.py +175 -0
- tools/ci/modules/state.py +117 -0
- tools/ci/modules/vcs.py +303 -0
- tools/ci/modules/workflow_ops.py +295 -0
- tools/ci/modules/worktree.py +337 -0
- tools/ci/pipeline_config_generator.py +558 -0
- tools/ci/pr_intelligence.py +485 -0
- tools/ci/triggers/__init__.py +2 -0
- tools/ci/triggers/gitlab_task_monitor.py +327 -0
- tools/ci/triggers/poll_trigger.py +237 -0
- tools/ci/triggers/webhook_server.py +356 -0
- tools/ci/workflows/__init__.py +2 -0
- tools/ci/workflows/icdev_build.py +140 -0
- tools/ci/workflows/icdev_comply.py +284 -0
- tools/ci/workflows/icdev_document.py +152 -0
- tools/ci/workflows/icdev_e2e.py +188 -0
- tools/ci/workflows/icdev_patch.py +186 -0
- tools/ci/workflows/icdev_plan.py +202 -0
- tools/ci/workflows/icdev_plan_build.py +41 -0
- tools/ci/workflows/icdev_plan_build_test.py +46 -0
- tools/ci/workflows/icdev_plan_build_test_review.py +47 -0
- tools/ci/workflows/icdev_review.py +126 -0
- tools/ci/workflows/icdev_sdlc.py +261 -0
- tools/ci/workflows/icdev_test.py +240 -0
- tools/cli/__init__.py +1 -0
- tools/cli/output_formatter.py +756 -0
- tools/cloudforge/__init__.py +12 -0
- tools/cloudforge/airgap/__init__.py +2 -0
- tools/cloudforge/airgap/il_classifier.py +70 -0
- tools/cloudforge/airgap/offline_validator.py +42 -0
- tools/cloudforge/airgap/shift_emulator.py +155 -0
- tools/cloudforge/airgap/sneakernet.py +91 -0
- tools/cloudforge/cd_hub/__init__.py +2 -0
- tools/cloudforge/cd_hub/canary_deployer.py +88 -0
- tools/cloudforge/cd_hub/gitops_renderer.py +123 -0
- tools/cloudforge/cd_hub/hub_controller.py +143 -0
- tools/cloudforge/cd_hub/pipeline_bridge.py +30 -0
- tools/cloudforge/cd_hub/rollback_engine.py +29 -0
- tools/cloudforge/cd_hub/spoke_agent.py +51 -0
- tools/cloudforge/compliance/__init__.py +2 -0
- tools/cloudforge/compliance/ato_accelerator.py +272 -0
- tools/cloudforge/compliance/control_inheritor.py +127 -0
- tools/cloudforge/compliance/evidence_generator.py +129 -0
- tools/cloudforge/compliance/poam_bridge.py +41 -0
- tools/cloudforge/compliance/ssp_bridge.py +52 -0
- tools/cloudforge/compliance/stig_bridge.py +41 -0
- tools/cloudforge/container_forge/__init__.py +2 -0
- tools/cloudforge/container_forge/bigbang_renderer.py +85 -0
- tools/cloudforge/container_forge/hardener.py +169 -0
- tools/cloudforge/container_forge/image_scanner_bridge.py +33 -0
- tools/cloudforge/container_forge/runtime_policy.py +87 -0
- tools/cloudforge/container_forge/sbom_bridge.py +42 -0
- tools/cloudforge/finops/__init__.py +2 -0
- tools/cloudforge/finops/anomaly_detector.py +78 -0
- tools/cloudforge/finops/budget_tracker.py +96 -0
- tools/cloudforge/finops/chargeback.py +69 -0
- tools/cloudforge/finops/cost_collector.py +141 -0
- tools/cloudforge/finops/optimizer.py +55 -0
- tools/cloudforge/hybrid/__init__.py +2 -0
- tools/cloudforge/hybrid/connection_manager.py +141 -0
- tools/cloudforge/hybrid/dns_federator.py +56 -0
- tools/cloudforge/hybrid/health_monitor.py +108 -0
- tools/cloudforge/hybrid/identity_federator.py +53 -0
- tools/cloudforge/hybrid/network_bridge.py +68 -0
- tools/cloudforge/hybrid/topology_manager.py +147 -0
- tools/cloudforge/hybrid/workload_abstractor.py +92 -0
- tools/cloudforge/iac/__init__.py +2 -0
- tools/cloudforge/iac/drift_detector.py +154 -0
- tools/cloudforge/iac/module_library.py +265 -0
- tools/cloudforge/iac/opentofu_adapter.py +89 -0
- tools/cloudforge/iac/pulumi_renderer.py +292 -0
- tools/cloudforge/iac/state_backend.py +146 -0
- tools/cloudforge/iac/terraform_renderer.py +626 -0
- tools/cloudforge/landing_zone/__init__.py +2 -0
- tools/cloudforge/landing_zone/blueprint_loader.py +98 -0
- tools/cloudforge/landing_zone/blueprint_validator.py +113 -0
- tools/cloudforge/landing_zone/zone_provisioner.py +306 -0
- tools/cloudforge/landing_zone/zone_state.py +143 -0
- tools/cloudforge/mbse_thread/__init__.py +2 -0
- tools/cloudforge/mbse_thread/ato_thread_weaver.py +111 -0
- tools/cloudforge/mbse_thread/control_tracer.py +68 -0
- tools/cloudforge/mbse_thread/system_boundary.py +83 -0
- tools/cloudforge/metastore/__init__.py +2 -0
- tools/cloudforge/metastore/dependency_graph.py +202 -0
- tools/cloudforge/metastore/discovery.py +192 -0
- tools/cloudforge/metastore/registry.py +185 -0
- tools/cloudforge/metastore/rto_tracker.py +92 -0
- tools/cloudforge/metastore/runbook_linker.py +82 -0
- tools/cloudforge/migration/__init__.py +2 -0
- tools/cloudforge/migration/assessor.py +187 -0
- tools/cloudforge/migration/cutover_orchestrator.py +117 -0
- tools/cloudforge/migration/databridge_bridge.py +92 -0
- tools/cloudforge/migration/planner.py +98 -0
- tools/cloudforge/migration/risk_scorer.py +97 -0
- tools/cloudforge/migration/validation_runner.py +45 -0
- tools/cloudforge/migration/workload_inventory.py +107 -0
- tools/cloudforge/provider.py +319 -0
- tools/cloudforge/providers/__init__.py +2 -0
- tools/cloudforge/providers/aws_commercial.py +92 -0
- tools/cloudforge/providers/aws_govcloud.py +229 -0
- tools/cloudforge/providers/aws_secret.py +83 -0
- tools/cloudforge/providers/azure_commercial.py +80 -0
- tools/cloudforge/providers/azure_gov.py +91 -0
- tools/cloudforge/providers/azure_secret.py +71 -0
- tools/cloudforge/providers/gcp.py +102 -0
- tools/cloudforge/providers/oci.py +102 -0
- tools/cloudforge/registry.py +140 -0
- tools/cloudforge/runbooks/__init__.py +2 -0
- tools/cloudforge/runbooks/ai_generator.py +119 -0
- tools/cloudforge/runbooks/dag_validator.py +219 -0
- tools/cloudforge/runbooks/engine.py +470 -0
- tools/cloudforge/runbooks/models.py +99 -0
- tools/cloudforge/runbooks/snippet_library.py +158 -0
- tools/cloudforge/runbooks/template_loader.py +122 -0
- tools/cloudforge/runbooks/visualization.py +108 -0
- tools/cloudforge/siem/__init__.py +2 -0
- tools/cloudforge/siem/alert_rules.py +86 -0
- tools/cloudforge/siem/correlation_engine.py +61 -0
- tools/cloudforge/siem/log_aggregator.py +113 -0
- tools/cloudforge/siem/siem_dashboard_data.py +28 -0
- tools/cloudforge/supply_chain/__init__.py +2 -0
- tools/cloudforge/supply_chain/bridge.py +33 -0
- tools/cloudforge/supply_chain/iac_dependency_scanner.py +36 -0
- tools/cloudforge/supply_chain/provider_trust_scorer.py +54 -0
- tools/compat/__init__.py +21 -0
- tools/compat/cli_harmonizer.py +251 -0
- tools/compat/datetime_utils.py +18 -0
- tools/compat/db_utils.py +190 -0
- tools/compat/platform_utils.py +123 -0
- tools/compliance/__init__.py +1 -0
- tools/compliance/accountability_manager.py +391 -0
- tools/compliance/ai_accountability_audit.py +287 -0
- tools/compliance/ai_impact_assessor.py +267 -0
- tools/compliance/ai_incident_response.py +295 -0
- tools/compliance/ai_inventory_manager.py +233 -0
- tools/compliance/ai_reassessment_scheduler.py +250 -0
- tools/compliance/ai_transparency_audit.py +247 -0
- tools/compliance/atlas_assessor.py +276 -0
- tools/compliance/atlas_report_generator.py +1199 -0
- tools/compliance/base_assessor.py +591 -0
- tools/compliance/cato_live_engine.py +607 -0
- tools/compliance/cato_monitor.py +1371 -0
- tools/compliance/cato_scheduler.py +698 -0
- tools/compliance/cjis_assessor.py +76 -0
- tools/compliance/classification_manager.py +1340 -0
- tools/compliance/cmmc_assessor.py +1478 -0
- tools/compliance/cmmc_report_generator.py +1087 -0
- tools/compliance/compliance_detector.py +452 -0
- tools/compliance/compliance_exporter.py +418 -0
- tools/compliance/compliance_status.py +810 -0
- tools/compliance/control_mapper.py +488 -0
- tools/compliance/crosswalk_engine.py +1208 -0
- tools/compliance/cssp_assessor.py +1032 -0
- tools/compliance/cssp_evidence_collector.py +716 -0
- tools/compliance/cssp_report_generator.py +1103 -0
- tools/compliance/cui_marker.py +387 -0
- tools/compliance/diagram_validator.py +599 -0
- tools/compliance/emass/__init__.py +2 -0
- tools/compliance/emass/emass_client.py +822 -0
- tools/compliance/emass/emass_export.py +758 -0
- tools/compliance/emass/emass_sync.py +807 -0
- tools/compliance/eu_ai_act_classifier.py +193 -0
- tools/compliance/evidence_collector.py +459 -0
- tools/compliance/fairness_assessor.py +310 -0
- tools/compliance/fedramp_20x_ksi_emitter.py +692 -0
- tools/compliance/fedramp_assessor.py +1795 -0
- tools/compliance/fedramp_authorization_packager.py +137 -0
- tools/compliance/fedramp_ksi_generator.py +349 -0
- tools/compliance/fedramp_report_generator.py +1115 -0
- tools/compliance/fips199_categorizer.py +869 -0
- tools/compliance/fips200_validator.py +304 -0
- tools/compliance/firmware_sbom.py +646 -0
- tools/compliance/gao_ai_assessor.py +228 -0
- tools/compliance/gao_evidence_builder.py +302 -0
- tools/compliance/hipaa_assessor.py +78 -0
- tools/compliance/hitrust_assessor.py +49 -0
- tools/compliance/incident_response_plan.py +705 -0
- tools/compliance/inheritance_engine.py +693 -0
- tools/compliance/iso27001_assessor.py +92 -0
- tools/compliance/iso42001_assessor.py +114 -0
- tools/compliance/ivv_assessor.py +2314 -0
- tools/compliance/ivv_report_generator.py +1649 -0
- tools/compliance/model_card_generator.py +291 -0
- tools/compliance/mosa_assessor.py +117 -0
- tools/compliance/multi_regime_assessor.py +441 -0
- tools/compliance/narrative_generator.py +1012 -0
- tools/compliance/narrative_quality_gate.py +701 -0
- tools/compliance/narrative_workflow.py +814 -0
- tools/compliance/nist_800_207_assessor.py +191 -0
- tools/compliance/nist_ai_600_1_assessor.py +185 -0
- tools/compliance/nist_ai_rmf_assessor.py +110 -0
- tools/compliance/nist_lookup.py +244 -0
- tools/compliance/omb_m25_21_assessor.py +225 -0
- tools/compliance/omb_m26_04_assessor.py +185 -0
- tools/compliance/oscal_catalog_adapter.py +395 -0
- tools/compliance/oscal_generator.py +2157 -0
- tools/compliance/oscal_tools.py +1182 -0
- tools/compliance/oscal_validator.py +692 -0
- tools/compliance/owasp_agentic_assessor.py +227 -0
- tools/compliance/owasp_asi_assessor.py +197 -0
- tools/compliance/owasp_llm_assessor.py +245 -0
- tools/compliance/pci_dss_assessor.py +80 -0
- tools/compliance/pi_compliance_tracker.py +1447 -0
- tools/compliance/poam_generator.py +388 -0
- tools/compliance/resolve_marking.py +272 -0
- tools/compliance/sbd_assessor.py +2070 -0
- tools/compliance/sbd_report_generator.py +1223 -0
- tools/compliance/sbom_generator.py +993 -0
- tools/compliance/siem_config_generator.py +661 -0
- tools/compliance/slsa_attestation_generator.py +479 -0
- tools/compliance/soc2_assessor.py +77 -0
- tools/compliance/ssp_generator.py +556 -0
- tools/compliance/stig_checker.py +712 -0
- tools/compliance/swft_evidence_bundler.py +326 -0
- tools/compliance/system_card_generator.py +303 -0
- tools/compliance/template_exchange.py +513 -0
- tools/compliance/traceability_matrix.py +1268 -0
- tools/compliance/universal_classification_manager.py +1159 -0
- tools/compliance/xacta/__init__.py +2 -0
- tools/compliance/xacta/xacta_client.py +438 -0
- tools/compliance/xacta/xacta_export.py +546 -0
- tools/compliance/xacta/xacta_sync.py +322 -0
- tools/compliance/xai_assessor.py +231 -0
- tools/core/__init__.py +2 -0
- tools/core/circuit_breaker.py +353 -0
- tools/core/compliance_sidecar.py +344 -0
- tools/core/container.py +110 -0
- tools/core/errors.py +256 -0
- tools/core/feature_flags.py +311 -0
- tools/core/task_dlq.py +350 -0
- tools/dashboard/__init__.py +2 -0
- tools/dashboard/app.py +6288 -0
- tools/dashboard/templates/agent_evolution.html +287 -0
- tools/dashboard/templates/agents/list.html +71 -0
- tools/dashboard/templates/agents.html +132 -0
- tools/dashboard/templates/architecture.html +289 -0
- tools/dashboard/templates/ato_simulator.html +170 -0
- tools/dashboard/templates/audit_engine.html +844 -0
- tools/dashboard/templates/base.html +236 -0
- tools/dashboard/templates/cato_live.html +116 -0
- tools/dashboard/templates/cloudforge.html +195 -0
- tools/dashboard/templates/cloudforge_finops.html +111 -0
- tools/dashboard/templates/cloudforge_hybrid.html +122 -0
- tools/dashboard/templates/cloudforge_metastore.html +234 -0
- tools/dashboard/templates/cloudforge_migration.html +87 -0
- tools/dashboard/templates/cloudforge_runbooks.html +201 -0
- tools/dashboard/templates/cloudforge_siem.html +94 -0
- tools/dashboard/templates/compliance_accel.html +292 -0
- tools/dashboard/templates/crashes.html +122 -0
- tools/dashboard/templates/databridge.html +305 -0
- tools/dashboard/templates/databridge_analytics.html +195 -0
- tools/dashboard/templates/databridge_mapping.html +345 -0
- tools/dashboard/templates/databridge_messaging.html +321 -0
- tools/dashboard/templates/decisions.html +258 -0
- tools/dashboard/templates/devices.html +151 -0
- tools/dashboard/templates/devsecops_maturity.html +278 -0
- tools/dashboard/templates/edge_ai.html +128 -0
- tools/dashboard/templates/firmware.html +120 -0
- tools/dashboard/templates/firmware_sbom.html +193 -0
- tools/dashboard/templates/forge_hub.html +196 -0
- tools/dashboard/templates/forge_studio.html +379 -0
- tools/dashboard/templates/forge_studio_analytics.html +360 -0
- tools/dashboard/templates/forge_studio_builder.html +1637 -0
- tools/dashboard/templates/forge_studio_compliance.html +310 -0
- tools/dashboard/templates/forge_studio_deploy.html +573 -0
- tools/dashboard/templates/forge_studio_enterprise.html +888 -0
- tools/dashboard/templates/forge_studio_marketplace.html +502 -0
- tools/dashboard/templates/forge_studio_workflow.html +696 -0
- tools/dashboard/templates/golden_path.html +175 -0
- tools/dashboard/templates/govcon.html +280 -0
- tools/dashboard/templates/harness.html +148 -0
- tools/dashboard/templates/index.html +207 -0
- tools/dashboard/templates/intelligence.html +336 -0
- tools/dashboard/templates/knowledge/index.html +190 -0
- tools/dashboard/templates/knowledge_graph.html +739 -0
- tools/dashboard/templates/login.html +51 -0
- tools/dashboard/templates/marketplace.html +336 -0
- tools/dashboard/templates/marketplace_admin.html +247 -0
- tools/dashboard/templates/missions.html +403 -0
- tools/dashboard/templates/narratives.html +154 -0
- tools/dashboard/templates/pr_intelligence.html +151 -0
- tools/dashboard/templates/proposals/detail.html +300 -0
- tools/dashboard/templates/proposals/list.html +52 -0
- tools/dashboard/templates/proposals/sam_detail.html +132 -0
- tools/dashboard/templates/proposals/section_detail.html +375 -0
- tools/dashboard/templates/research.html +222 -0
- tools/dashboard/templates/resilience.html +300 -0
- tools/dashboard/templates/scorecard.html +162 -0
- tools/dashboard/templates/simulator.html +131 -0
- tools/dashboard/templates/template_exchange.html +147 -0
- tools/dashboard/templates/thread_heatmap.html +151 -0
- tools/dashboard/templates/threat_model.html +195 -0
- tools/dashboard/templates/vsm.html +141 -0
- tools/dashboard/templates/writeguard.html +277 -0
- tools/databridge/__init__.py +5 -0
- tools/databridge/agent/__init__.py +2 -0
- tools/databridge/agent/daemon.py +227 -0
- tools/databridge/agent/tunnel.py +101 -0
- tools/databridge/agent/ws_relay.py +91 -0
- tools/databridge/analytics.py +167 -0
- tools/databridge/arrow_pipeline.py +327 -0
- tools/databridge/connection_manager.py +424 -0
- tools/databridge/connector.py +331 -0
- tools/databridge/connectors/__init__.py +2 -0
- tools/databridge/connectors/argocd_connector.py +160 -0
- tools/databridge/connectors/avro_connector.py +203 -0
- tools/databridge/connectors/azure_blob.py +63 -0
- tools/databridge/connectors/cdc_connector.py +205 -0
- tools/databridge/connectors/csv_connector.py +172 -0
- tools/databridge/connectors/datadog_connector.py +153 -0
- tools/databridge/connectors/discord_messaging.py +215 -0
- tools/databridge/connectors/dynamics365.py +151 -0
- tools/databridge/connectors/elasticsearch_connector.py +145 -0
- tools/databridge/connectors/email_base.py +114 -0
- tools/databridge/connectors/excel_connector.py +175 -0
- tools/databridge/connectors/fsspec_base.py +300 -0
- tools/databridge/connectors/gcs.py +53 -0
- tools/databridge/connectors/github_connector.py +138 -0
- tools/databridge/connectors/gitlab_connector.py +132 -0
- tools/databridge/connectors/gmail_connector.py +182 -0
- tools/databridge/connectors/hdfs.py +57 -0
- tools/databridge/connectors/health_base.py +401 -0
- tools/databridge/connectors/hubspot.py +124 -0
- tools/databridge/connectors/imap_connector.py +171 -0
- tools/databridge/connectors/jenkins_connector.py +138 -0
- tools/databridge/connectors/jira_connector.py +86 -0
- tools/databridge/connectors/json_connector.py +184 -0
- tools/databridge/connectors/kafka_connector.py +246 -0
- tools/databridge/connectors/kinesis_connector.py +238 -0
- tools/databridge/connectors/local_fs.py +30 -0
- tools/databridge/connectors/matrix.py +197 -0
- tools/databridge/connectors/mattermost_messaging.py +184 -0
- tools/databridge/connectors/messaging_base.py +172 -0
- tools/databridge/connectors/mssql.py +63 -0
- tools/databridge/connectors/mysql.py +57 -0
- tools/databridge/connectors/netsuite.py +170 -0
- tools/databridge/connectors/o365_mail.py +196 -0
- tools/databridge/connectors/oracle.py +65 -0
- tools/databridge/connectors/pagerduty_connector.py +162 -0
- tools/databridge/connectors/parquet_connector.py +131 -0
- tools/databridge/connectors/postgresql.py +58 -0
- tools/databridge/connectors/s3.py +65 -0
- tools/databridge/connectors/saas_base.py +198 -0
- tools/databridge/connectors/salesforce.py +126 -0
- tools/databridge/connectors/sap.py +89 -0
- tools/databridge/connectors/servicenow.py +60 -0
- tools/databridge/connectors/signal_messaging.py +150 -0
- tools/databridge/connectors/slack_messaging.py +203 -0
- tools/databridge/connectors/smtp_connector.py +126 -0
- tools/databridge/connectors/soap_base.py +258 -0
- tools/databridge/connectors/splunk_connector.py +171 -0
- tools/databridge/connectors/sql_base.py +310 -0
- tools/databridge/connectors/sqlite_connector.py +76 -0
- tools/databridge/connectors/teams.py +148 -0
- tools/databridge/connectors/telegram.py +192 -0
- tools/databridge/connectors/whatsapp.py +137 -0
- tools/databridge/data_profiler.py +99 -0
- tools/databridge/forge/__init__.py +6 -0
- tools/databridge/forge/base_selector.py +150 -0
- tools/databridge/forge/code_generator.py +206 -0
- tools/databridge/forge/community_hub.py +539 -0
- tools/databridge/forge/forge_agent.py +306 -0
- tools/databridge/forge/import_handler.py +133 -0
- tools/databridge/forge/integration_tester.py +127 -0
- tools/databridge/forge/marketplace_publisher.py +164 -0
- tools/databridge/forge/promoter.py +159 -0
- tools/databridge/forge/sandbox_manager.py +257 -0
- tools/databridge/forge/spec_parser.py +358 -0
- tools/databridge/forge/static_validator.py +363 -0
- tools/databridge/forge/templates/__init__.py +591 -0
- tools/databridge/format_converter.py +188 -0
- tools/databridge/mapping_engine.py +348 -0
- tools/databridge/messaging/__init__.py +5 -0
- tools/databridge/messaging/agent_bridge.py +254 -0
- tools/databridge/messaging/message_envelope.py +111 -0
- tools/databridge/messaging/message_logger.py +204 -0
- tools/databridge/messaging/messaging_daemon.py +326 -0
- tools/databridge/messaging/oauth2_manager.py +411 -0
- tools/databridge/pii_detector.py +221 -0
- tools/databridge/registry.py +352 -0
- tools/databridge/relay_server.py +105 -0
- tools/databridge/scale/__init__.py +16 -0
- tools/databridge/scale/backpressure.py +134 -0
- tools/databridge/scale/chunked_pipeline.py +169 -0
- tools/databridge/scale/connection_pool.py +293 -0
- tools/databridge/scale/engine.py +492 -0
- tools/databridge/scale/worker_pool.py +140 -0
- tools/databridge/scale/write_batcher.py +250 -0
- tools/databridge/schema_engine.py +324 -0
- tools/databridge/stream_manager.py +225 -0
- tools/databridge/sync_engine.py +411 -0
- tools/databridge/transforms.py +302 -0
- tools/db/__init__.py +1 -0
- tools/db/backup.py +312 -0
- tools/db/backup_manager.py +832 -0
- tools/db/init_icdev_db.py +7753 -0
- tools/db/init_sparkpilot_db.py +431 -0
- tools/db/migrate.py +177 -0
- tools/db/migrate_innovation_audit.py +165 -0
- tools/db/migration_runner.py +548 -0
- tools/db/migrations/001_baseline/meta.json +9 -0
- tools/db/migrations/001_baseline/up.py +67 -0
- tools/db/migrations/002_memory_enhancements/down.sql +8 -0
- tools/db/migrations/002_memory_enhancements/meta.json +9 -0
- tools/db/migrations/002_memory_enhancements/up.py +119 -0
- tools/db/migrations/003_dev_profiles/meta.json +8 -0
- tools/db/migrations/003_dev_profiles/up.py +93 -0
- tools/db/migrations/004_innovation_engine/down.py +19 -0
- tools/db/migrations/004_innovation_engine/up.py +227 -0
- tools/db/migrations/005_phase_37_ai_security/down.py +19 -0
- tools/db/migrations/005_phase_37_ai_security/up.py +257 -0
- tools/db/migrations/006_phase_36_evolution/down.py +21 -0
- tools/db/migrations/006_phase_36_evolution/up.py +323 -0
- tools/db/migrations/007_phase_38_cloud/down.py +14 -0
- tools/db/migrations/007_phase_38_cloud/up.py +110 -0
- tools/db/migrations/008_phase36_37_integration/up.py +55 -0
- tools/db/migrations/__init__.py +2 -0
- tools/db/pg_migrate.py +642 -0
- tools/db/storage.py +1080 -0
- tools/decisions/__init__.py +2 -0
- tools/decisions/dmn_engine.py +695 -0
- tools/devsecops/__init__.py +2 -0
- tools/devsecops/attestation_manager.py +449 -0
- tools/devsecops/network_segmentation_generator.py +604 -0
- tools/devsecops/pdp_config_generator.py +1246 -0
- tools/devsecops/pipeline_security_generator.py +475 -0
- tools/devsecops/policy_generator.py +644 -0
- tools/devsecops/profile_manager.py +374 -0
- tools/devsecops/service_mesh_generator.py +1063 -0
- tools/devsecops/zta_maturity_scorer.py +355 -0
- tools/devsecops/zta_terraform_generator.py +1301 -0
- tools/edge_ai/__init__.py +2 -0
- tools/edge_ai/model_manager.py +200 -0
- tools/embedded/__init__.py +2 -0
- tools/embedded/cmake_generator.py +318 -0
- tools/embedded/crash_analyzer.py +191 -0
- tools/embedded/nl_to_firmware.py +277 -0
- tools/events/__init__.py +1 -0
- tools/events/event_bus.py +199 -0
- tools/finetune/pair_generator.py +832 -0
- tools/fleet/__init__.py +2 -0
- tools/fleet/device_registry.py +148 -0
- tools/fleet/ota_manager.py +153 -0
- tools/forge_studio/__init__.py +13 -0
- tools/forge_studio/analytics/__init__.py +0 -0
- tools/forge_studio/analytics/process_miner.py +383 -0
- tools/forge_studio/audit.py +183 -0
- tools/forge_studio/blueprint/__init__.py +2 -0
- tools/forge_studio/blueprint/build_tracker.py +317 -0
- tools/forge_studio/blueprint/export_engine.py +441 -0
- tools/forge_studio/blueprint/parent_client.py +335 -0
- tools/forge_studio/catalog/__init__.py +2 -0
- tools/forge_studio/catalog/component_registry.py +176 -0
- tools/forge_studio/catalog/schema_validator.py +193 -0
- tools/forge_studio/compliance/__init__.py +1 -0
- tools/forge_studio/compliance/compliance_wiring.py +554 -0
- tools/forge_studio/deploy/__init__.py +1 -0
- tools/forge_studio/deploy/airgap_packager.py +466 -0
- tools/forge_studio/deploy/deploy_engine.py +1792 -0
- tools/forge_studio/deploy/env_manager.py +431 -0
- tools/forge_studio/eject/__init__.py +2 -0
- tools/forge_studio/eject/docker_compose_generator.py +237 -0
- tools/forge_studio/eject/eject_engine.py +230 -0
- tools/forge_studio/eject/expo_scaffolder.py +303 -0
- tools/forge_studio/eject/nextjs_scaffolder.py +338 -0
- tools/forge_studio/enterprise/__init__.py +0 -0
- tools/forge_studio/enterprise/custom_frameworks.py +826 -0
- tools/forge_studio/enterprise/hardening_engine.py +1530 -0
- tools/forge_studio/enterprise/sso_manager.py +718 -0
- tools/forge_studio/enterprise/whitelabel_engine.py +887 -0
- tools/forge_studio/formula/__init__.py +0 -0
- tools/forge_studio/formula/expression_engine.py +562 -0
- tools/forge_studio/formula/formula_registry.py +265 -0
- tools/forge_studio/generator/__init__.py +2 -0
- tools/forge_studio/generator/app_generator.py +584 -0
- tools/forge_studio/generator/complexity_detector.py +368 -0
- tools/forge_studio/generator/prompt_templates.py +104 -0
- tools/forge_studio/generator/spec_builder.py +192 -0
- tools/forge_studio/intake_bridge.py +898 -0
- tools/forge_studio/marketplace/__init__.py +0 -0
- tools/forge_studio/marketplace/component_hub.py +428 -0
- tools/forge_studio/models.py +369 -0
- tools/forge_studio/renderer/__init__.py +2 -0
- tools/forge_studio/renderer/json_render_engine.py +623 -0
- tools/forge_studio/renderer/layout_engine.py +214 -0
- tools/forge_studio/renderer/rn_component_map.py +182 -0
- tools/forge_studio/supabase/__init__.py +2 -0
- tools/forge_studio/supabase/auth_generator.py +283 -0
- tools/forge_studio/supabase/migration_generator.py +93 -0
- tools/forge_studio/supabase/schema_generator.py +281 -0
- tools/forge_studio/tenant_manager.py +387 -0
- tools/forge_studio/workflow/__init__.py +2 -0
- tools/forge_studio/workflow/bpmn_adapter.py +489 -0
- tools/govcon/draft_orchestrator.py +1151 -0
- tools/govcon/engine_enrichment.py +373 -0
- tools/govcon/knowledge_base.py +487 -0
- tools/govcon/knowledge_ingestion.py +510 -0
- tools/govcon/sam_scanner.py +754 -0
- tools/harness/__init__.py +6 -0
- tools/harness/exit_criteria_evaluator.py +231 -0
- tools/harness/maturity_assessor.py +347 -0
- tools/harness/scaffold_harness.py +416 -0
- tools/harness/trace_analyzer.py +281 -0
- tools/infra/__init__.py +1 -0
- tools/infra/ansible_generator.py +867 -0
- tools/infra/dockerfile_generator.py +359 -0
- tools/infra/infra_status.py +384 -0
- tools/infra/ironbank_metadata_generator.py +403 -0
- tools/infra/k8s_generator.py +1000 -0
- tools/infra/pipeline_generator.py +830 -0
- tools/infra/rollback.py +389 -0
- tools/infra/terraform_generator.py +1140 -0
- tools/infra/terraform_generator_azure.py +1252 -0
- tools/infra/terraform_generator_gcp.py +951 -0
- tools/infra/terraform_generator_ibm.py +359 -0
- tools/infra/terraform_generator_oci.py +918 -0
- tools/infra/terraform_generator_onprem.py +318 -0
- tools/knowledge/__init__.py +1 -0
- tools/knowledge/knowledge_ingest.py +281 -0
- tools/knowledge/pattern_detector.py +681 -0
- tools/knowledge/recommendation_engine.py +449 -0
- tools/knowledge/self_heal_analyzer.py +492 -0
- tools/knowledge_graph/__init__.py +2 -0
- tools/knowledge_graph/graph_rag.py +498 -0
- tools/knowledge_graph/ingester.py +406 -0
- tools/knowledge_graph/insight_generator.py +369 -0
- tools/knowledge_graph/text_network.py +832 -0
- tools/llm/__init__.py +72 -0
- tools/llm/anthropic_provider.py +170 -0
- tools/llm/azure_openai_provider.py +338 -0
- tools/llm/bedrock_provider.py +315 -0
- tools/llm/embedding_provider.py +438 -0
- tools/llm/gemini_provider.py +381 -0
- tools/llm/ibm_watsonx_provider.py +231 -0
- tools/llm/oci_genai_provider.py +462 -0
- tools/llm/ollama_provider.py +350 -0
- tools/llm/openai_provider.py +225 -0
- tools/llm/prompt_registry.py +447 -0
- tools/llm/provider.py +355 -0
- tools/llm/provider_sdk.py +175 -0
- tools/llm/router.py +1124 -0
- tools/llm/semantic_cache.py +394 -0
- tools/llm/vertex_ai_provider.py +374 -0
- tools/maintenance/__init__.py +2 -0
- tools/maintenance/dependency_scanner.py +1016 -0
- tools/maintenance/maintenance_auditor.py +804 -0
- tools/maintenance/remediation_engine.py +957 -0
- tools/maintenance/vulnerability_checker.py +978 -0
- tools/manifest.md +1066 -0
- tools/marketplace/asset_installer.py +639 -0
- tools/marketplace/feedback_validator.py +359 -0
- tools/marketplace/license_client.py +458 -0
- tools/marketplace/module_crypto.py +544 -0
- tools/marketplace/module_runtime.py +236 -0
- tools/marketplace/token_store.py +264 -0
- tools/mbse/__init__.py +3 -0
- tools/mbse/des_assessor.py +1173 -0
- tools/mbse/des_report_generator.py +787 -0
- tools/mbse/diagram_extractor.py +792 -0
- tools/mbse/digital_thread.py +1650 -0
- tools/mbse/model_code_generator.py +1115 -0
- tools/mbse/model_control_mapper.py +410 -0
- tools/mbse/pi_model_tracker.py +1079 -0
- tools/mbse/reqif_parser.py +1468 -0
- tools/mbse/sync_engine.py +1789 -0
- tools/mbse/thread_heatmap.py +445 -0
- tools/mbse/xmi_parser.py +1558 -0
- tools/mcp/builder_server.py +64 -0
- tools/mcp/compliance_server.py +64 -0
- tools/mcp/connector_forge_server.py +155 -0
- tools/mcp/core_server.py +64 -0
- tools/mcp/devsecops_server.py +11 -0
- tools/mcp/devsecops_zta_server.py +64 -0
- tools/mcp/knowledge_server.py +64 -0
- tools/mcp/monitor_server.py +64 -0
- tools/mcp/ops_server.py +300 -0
- tools/mcp/requirements_analyst_server.py +64 -0
- tools/mcp/requirements_server.py +11 -0
- tools/mcp/security_server.py +64 -0
- tools/mcp/simulation_server.py +64 -0
- tools/mcp/supply_chain_server.py +64 -0
- tools/mcp/tool_registry.py +299 -0
- tools/memory/__init__.py +2 -0
- tools/memory/auto_capture.py +346 -0
- tools/memory/embed_memory.py +157 -0
- tools/memory/history_compressor.py +334 -0
- tools/memory/hybrid_search.py +235 -0
- tools/memory/maintenance_cron.py +288 -0
- tools/memory/memory_consolidation.py +439 -0
- tools/memory/memory_db.py +132 -0
- tools/memory/memory_read.py +101 -0
- tools/memory/memory_write.py +221 -0
- tools/memory/semantic_search.py +138 -0
- tools/memory/time_decay.py +434 -0
- tools/missions/__init__.py +2 -0
- tools/missions/mission_engine.py +459 -0
- tools/monitor/__init__.py +1 -0
- tools/monitor/alert_correlator.py +486 -0
- tools/monitor/auto_resolver.py +603 -0
- tools/monitor/health_checker.py +507 -0
- tools/monitor/heartbeat_daemon.py +779 -0
- tools/monitor/log_analyzer.py +507 -0
- tools/monitor/metric_collector.py +484 -0
- tools/mosa/__init__.py +10 -0
- tools/mosa/icd_generator.py +358 -0
- tools/mosa/modular_design_analyzer.py +682 -0
- tools/mosa/mosa_code_enforcer.py +348 -0
- tools/mosa/tsp_generator.py +265 -0
- tools/observability/__init__.py +100 -0
- tools/observability/genai_attributes.py +88 -0
- tools/observability/instrumentation.py +140 -0
- tools/observability/mlflow_exporter.py +193 -0
- tools/observability/otel_tracer.py +168 -0
- tools/observability/provenance/__init__.py +3 -0
- tools/observability/provenance/prov_recorder.py +322 -0
- tools/observability/shap/__init__.py +3 -0
- tools/observability/shap/agent_shap.py +274 -0
- tools/observability/sqlite_tracer.py +360 -0
- tools/observability/trace_context.py +205 -0
- tools/observability/tracer.py +230 -0
- tools/orchestration/__init__.py +1 -0
- tools/orchestration/peer_channels.py +254 -0
- tools/orchestration/saga_coordinator.py +390 -0
- tools/project/__init__.py +1 -0
- tools/project/manifest_loader.py +418 -0
- tools/project/project_create.py +350 -0
- tools/project/project_list.py +171 -0
- tools/project/project_scaffold.py +1715 -0
- tools/project/project_status.py +478 -0
- tools/project/session_context_builder.py +752 -0
- tools/project/validate_manifest.py +54 -0
- tools/rag/corrective_rag.py +582 -0
- tools/rag/source_registry.py +482 -0
- tools/requirements/__init__.py +1 -0
- tools/requirements/ai_governance_scorer.py +207 -0
- tools/requirements/boundary_analyzer.py +1281 -0
- tools/requirements/clarification_engine.py +605 -0
- tools/requirements/complexity_scorer.py +369 -0
- tools/requirements/consistency_analyzer.py +789 -0
- tools/requirements/constitution_manager.py +592 -0
- tools/requirements/decomposition_engine.py +764 -0
- tools/requirements/document_extractor.py +1002 -0
- tools/requirements/elicitation_techniques.py +508 -0
- tools/requirements/gap_detector.py +260 -0
- tools/requirements/intake_engine.py +2175 -0
- tools/requirements/prd_generator.py +839 -0
- tools/requirements/prd_validator.py +584 -0
- tools/requirements/readiness_scorer.py +302 -0
- tools/requirements/spec_organizer.py +1015 -0
- tools/requirements/spec_quality_checker.py +1083 -0
- tools/requirements/traceability_builder.py +566 -0
- tools/research/__init__.py +3 -0
- tools/research/academic_scanner.py +130 -0
- tools/research/build_buy_analyzer.py +229 -0
- tools/research/challenge_scorer.py +280 -0
- tools/research/community_scanner.py +174 -0
- tools/research/cross_engine_bridge.py +124 -0
- tools/research/dossier_generator.py +305 -0
- tools/research/landscape_scanner.py +315 -0
- tools/research/regulatory_scanner.py +248 -0
- tools/research/research_manager.py +469 -0
- tools/research/source_scanner.py +150 -0
- tools/research/vertical_loader.py +118 -0
- tools/saas/__init__.py +0 -0
- tools/saas/licensing/__init__.py +0 -0
- tools/saas/licensing/license_validator.py +345 -0
- tools/scaffold/__init__.py +2 -0
- tools/scaffold/golden_path.py +504 -0
- tools/security/__init__.py +1 -0
- tools/security/agent_output_validator.py +330 -0
- tools/security/agent_trust_scorer.py +652 -0
- tools/security/ai_bom_generator.py +718 -0
- tools/security/ai_telemetry_logger.py +469 -0
- tools/security/atlas_red_team.py +541 -0
- tools/security/code_pattern_scanner.py +382 -0
- tools/security/confabulation_detector.py +265 -0
- tools/security/container_scanner.py +489 -0
- tools/security/dependency_auditor.py +942 -0
- tools/security/endpoint_security_scanner.py +626 -0
- tools/security/mcp_tool_authorizer.py +242 -0
- tools/security/output_verifier.py +427 -0
- tools/security/prompt_injection_detector.py +737 -0
- tools/security/sast_runner.py +946 -0
- tools/security/secret_detector.py +376 -0
- tools/security/threat_modeler.py +678 -0
- tools/security/tool_chain_validator.py +357 -0
- tools/security/vuln_scanner.py +536 -0
- tools/simulation/__init__.py +2 -0
- tools/simulation/ato_simulator.py +517 -0
- tools/simulation/coa_generator.py +1539 -0
- tools/simulation/monte_carlo.py +745 -0
- tools/simulation/scenario_manager.py +1060 -0
- tools/simulation/simulation_engine.py +1091 -0
- tools/simulator/__init__.py +2 -0
- tools/simulator/sim_runner.py +272 -0
- tools/supply_chain/__init__.py +2 -0
- tools/supply_chain/cve_triager.py +690 -0
- tools/supply_chain/dependency_graph.py +630 -0
- tools/supply_chain/isa_manager.py +526 -0
- tools/supply_chain/scrm_assessor.py +531 -0
- tools/supply_chain/slsa_verifier.py +473 -0
- tools/testing/__init__.py +2 -0
- tools/testing/acceptance_validator.py +411 -0
- tools/testing/api_surface_extractor.py +749 -0
- tools/testing/claude_dir_validator.py +831 -0
- tools/testing/data_types.py +199 -0
- tools/testing/e2e_runner.py +715 -0
- tools/testing/fuzz_cli.py +306 -0
- tools/testing/health_check.py +483 -0
- tools/testing/platform_check.py +143 -0
- tools/testing/production_audit.py +1836 -0
- tools/testing/production_remediate.py +803 -0
- tools/testing/screenshot_validator.py +538 -0
- tools/testing/smoke_test.py +283 -0
- tools/testing/test_agent_models.py +117 -0
- tools/testing/test_orchestrator.py +957 -0
- tools/testing/utils.py +229 -0
- tools/writeguard/__init__.py +1 -0
- tools/writeguard/main.py +1 -0
- tools/writing/__init__.py +7 -0
- tools/writing/ai_content_detector.py +316 -0
- tools/writing/analysis_engine.py +454 -0
- tools/writing/batch_analyzer.py +276 -0
- tools/writing/coherence_analyzer.py +221 -0
- tools/writing/govcon_bridge.py +509 -0
- tools/writing/grammar_checker.py +270 -0
- tools/writing/plagiarism_detector.py +106 -0
- tools/writing/readability_scorer.py +201 -0
- tools/writing/rewriter.py +96 -0
- tools/writing/signal_registrar.py +167 -0
- tools/writing/snippet_manager.py +276 -0
- tools/writing/style_enforcer.py +220 -0
- tools/writing/style_guide_manager.py +438 -0
- tools/writing/tone_profiler.py +168 -0
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# CUI // SP-CTI
|
|
3
|
+
"""Community Scanner — pain point mining from forums, review sites, and practitioner feedback.
|
|
4
|
+
|
|
5
|
+
Generates signals from community pain points observed in the defense software
|
|
6
|
+
factory ecosystem. Categorizes by pain type and severity.
|
|
7
|
+
|
|
8
|
+
CLI:
|
|
9
|
+
python tools/research/community_scanner.py --session-id <id> --json
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
import argparse
|
|
13
|
+
import json
|
|
14
|
+
import sys
|
|
15
|
+
from pathlib import Path
|
|
16
|
+
|
|
17
|
+
from tools.research.source_scanner import (
|
|
18
|
+
get_session_vertical, insert_signals, _log_audit, _get_connection
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
# ---------------------------------------------------------------------------
|
|
22
|
+
# Defense software factory community pain points (curated intelligence)
|
|
23
|
+
# ---------------------------------------------------------------------------
|
|
24
|
+
|
|
25
|
+
COMMUNITY_PAIN_POINTS = [
|
|
26
|
+
# Compliance burden
|
|
27
|
+
{"title": "ATO takes 12-18 months and costs $2-5M per system", "category": "compliance_burden", "severity": "critical",
|
|
28
|
+
"body": "Traditional RMF ATO process requires 300+ controls documented manually, 6+ months of assessment, and costs millions. Programs delay deployment waiting for authorization. cATO promises improvement but adoption is slow.",
|
|
29
|
+
"source_type": "forum", "upvotes": 342},
|
|
30
|
+
{"title": "STIG compliance is manual, repetitive, and error-prone", "category": "compliance_burden", "severity": "critical",
|
|
31
|
+
"body": "Teams spend weeks manually checking STIG settings across hundreds of systems. Automated STIG scanning exists but remediation is still manual. Container STIGs add new complexity layer.",
|
|
32
|
+
"source_type": "forum", "upvotes": 256},
|
|
33
|
+
{"title": "Compliance artifacts become stale within weeks of production", "category": "compliance_burden", "severity": "notable",
|
|
34
|
+
"body": "SSP, POAM, and other ATO artifacts are point-in-time snapshots that immediately become outdated as systems change. Continuous monitoring should update artifacts automatically but rarely does.",
|
|
35
|
+
"source_type": "reddit", "upvotes": 189},
|
|
36
|
+
{"title": "CMMC 2.0 assessment costs $50K-200K for small DIB companies", "category": "compliance_burden", "severity": "critical",
|
|
37
|
+
"body": "Small and mid-size defense contractors face existential threat from CMMC compliance costs. Many considering exiting the DIB entirely. Automated compliance tooling could reduce costs 60-80%.",
|
|
38
|
+
"source_type": "forum", "upvotes": 412},
|
|
39
|
+
|
|
40
|
+
# Integration difficulty
|
|
41
|
+
{"title": "Platform One onboarding takes 3-6 months for new programs", "category": "integration_difficulty", "severity": "critical",
|
|
42
|
+
"body": "Getting a new application onboarded to P1 requires Iron Bank container approval, Big Bang configuration, Keycloak SSO integration, and Party Bus networking. Many programs give up and build their own.",
|
|
43
|
+
"source_type": "reddit", "upvotes": 278},
|
|
44
|
+
{"title": "Air-gapped development environments break modern CI/CD assumptions", "category": "integration_difficulty", "severity": "critical",
|
|
45
|
+
"body": "Modern DevOps tools assume internet connectivity for package downloads, container pulls, and SaaS integrations. Air-gapped classified environments require completely different toolchain and workflow.",
|
|
46
|
+
"source_type": "stackexchange", "upvotes": 195},
|
|
47
|
+
{"title": "Connecting legacy DoD systems (DCGS, C2, etc.) requires custom integration", "category": "integration_difficulty", "severity": "notable",
|
|
48
|
+
"body": "Every DoD program has unique data formats, protocols, and interfaces. No standard connector framework exists. Teams build one-off integrations that are unmaintainable.",
|
|
49
|
+
"source_type": "forum", "upvotes": 167},
|
|
50
|
+
{"title": "MBSE tools (Cameo, DOORS) don't integrate with DevSecOps pipelines", "category": "integration_difficulty", "severity": "notable",
|
|
51
|
+
"body": "Requirements in DOORS NG and models in Cameo Systems Modeler live in silos disconnected from code, tests, and deployment. Digital thread is theoretical, not operational for most programs.",
|
|
52
|
+
"source_type": "forum", "upvotes": 134},
|
|
53
|
+
|
|
54
|
+
# Cost concern
|
|
55
|
+
{"title": "Enterprise DevSecOps toolchain costs $500K-2M/year per program", "category": "cost_concern", "severity": "critical",
|
|
56
|
+
"body": "GitLab Ultimate + Jira Align + SonarQube + Fortify + Xacta + ServiceNow licensing for a single program can exceed $1M/year. Small programs can't afford modern development practices.",
|
|
57
|
+
"source_type": "g2", "upvotes": 223},
|
|
58
|
+
{"title": "GovCloud hosting costs 3-5x commercial cloud", "category": "cost_concern", "severity": "notable",
|
|
59
|
+
"body": "AWS GovCloud, Azure Government, and Oracle Federal Cloud charge significant premiums over commercial regions. Programs budget for compute but get surprised by egress, storage, and support costs.",
|
|
60
|
+
"source_type": "reddit", "upvotes": 198},
|
|
61
|
+
|
|
62
|
+
# Feature gaps
|
|
63
|
+
{"title": "No single tool covers requirements → code → test → deploy → compliance", "category": "feature_gap", "severity": "critical",
|
|
64
|
+
"body": "Programs cobble together 8-12 tools for their SDLC. Each handoff is a manual process. End-to-end traceability from requirements to deployed code with compliance evidence doesn't exist in one platform.",
|
|
65
|
+
"source_type": "forum", "upvotes": 389},
|
|
66
|
+
{"title": "Existing tools don't generate ATO artifacts from development activity", "category": "feature_gap", "severity": "critical",
|
|
67
|
+
"body": "Development teams write code, run tests, scan for vulnerabilities — but compliance teams manually recreate this evidence in SSP/POAM documents. Automated artifact generation from CI/CD pipeline data is the holy grail.",
|
|
68
|
+
"source_type": "reddit", "upvotes": 267},
|
|
69
|
+
{"title": "AI code generation (Copilot, etc.) lacks compliance and security guardrails", "category": "feature_gap", "severity": "notable",
|
|
70
|
+
"body": "AI coding assistants can generate code but have no concept of CUI handling, STIG compliance, FIPS crypto requirements, or supply chain provenance. Generated code often introduces compliance violations.",
|
|
71
|
+
"source_type": "forum", "upvotes": 201},
|
|
72
|
+
{"title": "No SBOM tool handles firmware, embedded, and software in unified view", "category": "feature_gap", "severity": "notable",
|
|
73
|
+
"body": "CycloneDX and SPDX handle software SBOMs but embedded firmware, RTOS components, and hardware bill of materials need separate tooling. Unified supply chain visibility across the stack is missing.",
|
|
74
|
+
"source_type": "stackexchange", "upvotes": 145},
|
|
75
|
+
|
|
76
|
+
# Security concerns
|
|
77
|
+
{"title": "Supply chain attacks are #1 concern but SCRM tooling is immature", "category": "security_worry", "severity": "critical",
|
|
78
|
+
"body": "After SolarWinds and Log4Shell, supply chain security is top priority. But existing SCRM tools only check for known CVEs — they don't assess maintainer risk, provenance, or build integrity.",
|
|
79
|
+
"source_type": "reddit", "upvotes": 334},
|
|
80
|
+
{"title": "Container images in Iron Bank still have critical CVEs", "category": "security_worry", "severity": "notable",
|
|
81
|
+
"body": "Even DoD-hardened container images in Iron Bank have CVE backlogs. Teams must track waivers, mitigations, and accept risk for vulnerabilities that can't be patched without breaking functionality.",
|
|
82
|
+
"source_type": "forum", "upvotes": 178},
|
|
83
|
+
|
|
84
|
+
# Performance/scalability
|
|
85
|
+
{"title": "Security scanning adds 30-60 minutes to every CI/CD pipeline run", "category": "performance_issue", "severity": "notable",
|
|
86
|
+
"body": "Mandatory SAST, SCA, container scanning, and STIG checks slow pipelines dramatically. Developers wait hours for feedback. Incremental scanning and caching are needed but rarely implemented.",
|
|
87
|
+
"source_type": "g2", "upvotes": 212},
|
|
88
|
+
{"title": "Compliance dashboards can't handle multi-program enterprise views", "category": "scalability", "severity": "notable",
|
|
89
|
+
"body": "Individual program compliance is manageable but enterprise portfolio views across 50+ programs break existing tools. CISOs need aggregated risk posture across all programs.",
|
|
90
|
+
"source_type": "capterra", "upvotes": 156},
|
|
91
|
+
|
|
92
|
+
# Usability
|
|
93
|
+
{"title": "eMASS is universally hated by every ISSO and developer in DoD", "category": "usability_problem", "severity": "critical",
|
|
94
|
+
"body": "eMASS has a 1990s-era interface, requires Internet Explorer compatibility mode, loses form data on timeout, and provides no API for automation. It's the single biggest bottleneck in DoD cybersecurity.",
|
|
95
|
+
"source_type": "reddit", "upvotes": 567},
|
|
96
|
+
{"title": "Developers refuse to use compliance tools that slow them down", "category": "usability_problem", "severity": "notable",
|
|
97
|
+
"body": "If compliance isn't invisible and integrated into developer workflow, developers find workarounds. Security and compliance must be automated gates, not manual checklists that break flow.",
|
|
98
|
+
"source_type": "forum", "upvotes": 234},
|
|
99
|
+
]
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def scan_community(session_id: str, db_path=None) -> dict:
|
|
103
|
+
"""Scan community pain points and insert signals."""
|
|
104
|
+
session = get_session_vertical(session_id, db_path=db_path)
|
|
105
|
+
|
|
106
|
+
signals = []
|
|
107
|
+
for pain in COMMUNITY_PAIN_POINTS:
|
|
108
|
+
signals.append({
|
|
109
|
+
"source": "community_forum",
|
|
110
|
+
"source_type": pain.get("source_type", "forum"),
|
|
111
|
+
"title": pain["title"],
|
|
112
|
+
"body": pain["body"],
|
|
113
|
+
"upvotes": pain.get("upvotes", 0),
|
|
114
|
+
"sentiment": "negative",
|
|
115
|
+
"keywords": [pain["category"], pain["severity"], "pain_point"],
|
|
116
|
+
"metadata": {
|
|
117
|
+
"category": pain["category"],
|
|
118
|
+
"severity": pain["severity"],
|
|
119
|
+
},
|
|
120
|
+
})
|
|
121
|
+
|
|
122
|
+
result = insert_signals(session_id, signals, db_path=db_path)
|
|
123
|
+
|
|
124
|
+
conn = _get_connection(db_path)
|
|
125
|
+
try:
|
|
126
|
+
_log_audit(conn, session_id, "research_community_scanned", "scan_community",
|
|
127
|
+
{"pain_points": len(COMMUNITY_PAIN_POINTS), "signals_inserted": result["inserted"]})
|
|
128
|
+
finally:
|
|
129
|
+
conn.close()
|
|
130
|
+
|
|
131
|
+
# Category breakdown
|
|
132
|
+
categories = {}
|
|
133
|
+
for p in COMMUNITY_PAIN_POINTS:
|
|
134
|
+
cat = p["category"]
|
|
135
|
+
if cat not in categories:
|
|
136
|
+
categories[cat] = {"count": 0, "critical": 0, "total_upvotes": 0}
|
|
137
|
+
categories[cat]["count"] += 1
|
|
138
|
+
if p["severity"] == "critical":
|
|
139
|
+
categories[cat]["critical"] += 1
|
|
140
|
+
categories[cat]["total_upvotes"] += p.get("upvotes", 0)
|
|
141
|
+
|
|
142
|
+
return {
|
|
143
|
+
"session_id": session_id,
|
|
144
|
+
"stage": "COMMUNITY",
|
|
145
|
+
"total_pain_points": len(COMMUNITY_PAIN_POINTS),
|
|
146
|
+
"signals_inserted": result["inserted"],
|
|
147
|
+
"categories": categories,
|
|
148
|
+
"critical_pain_points": sum(1 for p in COMMUNITY_PAIN_POINTS if p["severity"] == "critical"),
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
def main():
|
|
153
|
+
parser = argparse.ArgumentParser(description="Community Scanner")
|
|
154
|
+
parser.add_argument("--session-id", required=True)
|
|
155
|
+
parser.add_argument("--json", action="store_true")
|
|
156
|
+
parser.add_argument("--db-path")
|
|
157
|
+
args = parser.parse_args()
|
|
158
|
+
try:
|
|
159
|
+
result = scan_community(args.session_id, db_path=args.db_path)
|
|
160
|
+
if args.json:
|
|
161
|
+
print(json.dumps(result, indent=2, default=str))
|
|
162
|
+
else:
|
|
163
|
+
for k, v in result.items():
|
|
164
|
+
print(f" {k}: {v}")
|
|
165
|
+
except Exception as exc:
|
|
166
|
+
if args.json:
|
|
167
|
+
print(json.dumps({"error": str(exc)}, indent=2))
|
|
168
|
+
else:
|
|
169
|
+
print(f"Error: {exc}", file=sys.stderr)
|
|
170
|
+
sys.exit(1)
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
if __name__ == "__main__":
|
|
174
|
+
main()
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# CUI // SP-CTI
|
|
3
|
+
"""Cross-Engine Bridge — register research findings to Innovation + Creative engines.
|
|
4
|
+
|
|
5
|
+
High-scoring challenges (>= 0.75) register as innovation signals and creative
|
|
6
|
+
pain points for cross-pollination across engines.
|
|
7
|
+
|
|
8
|
+
CLI:
|
|
9
|
+
python tools/research/cross_engine_bridge.py --session-id <id> --json
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
import argparse
|
|
13
|
+
import json
|
|
14
|
+
import logging
|
|
15
|
+
import sqlite3
|
|
16
|
+
import sys
|
|
17
|
+
import uuid
|
|
18
|
+
from datetime import datetime, timezone
|
|
19
|
+
from pathlib import Path
|
|
20
|
+
|
|
21
|
+
BASE_DIR = Path(__file__).resolve().parent.parent.parent
|
|
22
|
+
DB_PATH = BASE_DIR / "data" / "icdev.db"
|
|
23
|
+
|
|
24
|
+
from tools.research.source_scanner import _get_connection, _uid, _now, _log_audit
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def cross_register(session_id: str, db_path=None) -> dict:
|
|
28
|
+
"""Register high-scoring research findings to Innovation and Creative engines."""
|
|
29
|
+
conn = _get_connection(db_path)
|
|
30
|
+
try:
|
|
31
|
+
session = conn.execute(
|
|
32
|
+
"SELECT * FROM research_sessions WHERE id = ?", (session_id,)
|
|
33
|
+
).fetchone()
|
|
34
|
+
if not session:
|
|
35
|
+
raise ValueError(f"Session '{session_id}' not found")
|
|
36
|
+
|
|
37
|
+
# Get high-scoring challenges
|
|
38
|
+
challenges = conn.execute(
|
|
39
|
+
"SELECT * FROM research_challenges WHERE session_id = ? AND composite_score >= 0.75 "
|
|
40
|
+
"ORDER BY composite_score DESC", (session_id,)
|
|
41
|
+
).fetchall()
|
|
42
|
+
|
|
43
|
+
registered_innovation = 0
|
|
44
|
+
registered_creative = 0
|
|
45
|
+
now = _now()
|
|
46
|
+
|
|
47
|
+
for ch in challenges:
|
|
48
|
+
# Register to innovation signals if table exists
|
|
49
|
+
try:
|
|
50
|
+
conn.execute(
|
|
51
|
+
"INSERT OR IGNORE INTO audit_trail "
|
|
52
|
+
"(project_id, event_type, actor, action, details, classification, created_at) "
|
|
53
|
+
"VALUES (?, ?, ?, ?, ?, ?, ?)",
|
|
54
|
+
(session_id, "research_cross_registered",
|
|
55
|
+
"icdev-research-bridge", "cross_register_innovation",
|
|
56
|
+
json.dumps({
|
|
57
|
+
"challenge_id": ch["id"],
|
|
58
|
+
"title": ch["title"],
|
|
59
|
+
"composite_score": ch["composite_score"],
|
|
60
|
+
"category": ch["category"],
|
|
61
|
+
"source": "research_engine",
|
|
62
|
+
}), "CUI", now),
|
|
63
|
+
)
|
|
64
|
+
registered_innovation += 1
|
|
65
|
+
except Exception as exc:
|
|
66
|
+
logging.warning("Innovation cross-register failed for %s: %s", ch["id"], exc)
|
|
67
|
+
|
|
68
|
+
# Register to creative pain points
|
|
69
|
+
try:
|
|
70
|
+
conn.execute(
|
|
71
|
+
"INSERT OR IGNORE INTO audit_trail "
|
|
72
|
+
"(project_id, event_type, actor, action, details, classification, created_at) "
|
|
73
|
+
"VALUES (?, ?, ?, ?, ?, ?, ?)",
|
|
74
|
+
(session_id, "research_cross_registered",
|
|
75
|
+
"icdev-research-bridge", "cross_register_creative",
|
|
76
|
+
json.dumps({
|
|
77
|
+
"challenge_id": ch["id"],
|
|
78
|
+
"title": ch["title"],
|
|
79
|
+
"composite_score": ch["composite_score"],
|
|
80
|
+
"category": ch["category"],
|
|
81
|
+
"source": "research_engine",
|
|
82
|
+
}), "CUI", now),
|
|
83
|
+
)
|
|
84
|
+
registered_creative += 1
|
|
85
|
+
except Exception as exc:
|
|
86
|
+
logging.warning("Creative cross-register failed for %s: %s", ch["id"], exc)
|
|
87
|
+
|
|
88
|
+
conn.commit()
|
|
89
|
+
_log_audit(conn, session_id, "research_cross_registered", "cross_register",
|
|
90
|
+
{"innovation_signals": registered_innovation, "creative_pain_points": registered_creative})
|
|
91
|
+
|
|
92
|
+
return {
|
|
93
|
+
"session_id": session_id,
|
|
94
|
+
"high_scoring_challenges": len(challenges),
|
|
95
|
+
"innovation_signals_registered": registered_innovation,
|
|
96
|
+
"creative_pain_points_registered": registered_creative,
|
|
97
|
+
}
|
|
98
|
+
finally:
|
|
99
|
+
conn.close()
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def main():
|
|
103
|
+
parser = argparse.ArgumentParser(description="Cross-Engine Bridge")
|
|
104
|
+
parser.add_argument("--session-id", required=True)
|
|
105
|
+
parser.add_argument("--json", action="store_true")
|
|
106
|
+
parser.add_argument("--db-path")
|
|
107
|
+
args = parser.parse_args()
|
|
108
|
+
try:
|
|
109
|
+
result = cross_register(args.session_id, db_path=args.db_path)
|
|
110
|
+
if args.json:
|
|
111
|
+
print(json.dumps(result, indent=2, default=str))
|
|
112
|
+
else:
|
|
113
|
+
for k, v in result.items():
|
|
114
|
+
print(f" {k}: {v}")
|
|
115
|
+
except Exception as exc:
|
|
116
|
+
if args.json:
|
|
117
|
+
print(json.dumps({"error": str(exc)}, indent=2))
|
|
118
|
+
else:
|
|
119
|
+
print(f"Error: {exc}", file=sys.stderr)
|
|
120
|
+
sys.exit(1)
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
if __name__ == "__main__":
|
|
124
|
+
main()
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# CUI // SP-CTI
|
|
3
|
+
"""Dossier Generator — produce 11-section research dossier from pipeline data.
|
|
4
|
+
|
|
5
|
+
Sections: executive summary, market landscape, regulatory environment,
|
|
6
|
+
community pain points, academic landscape, build-vs-buy analysis,
|
|
7
|
+
challenge ranking, capability map, recommended scope, risk assessment, appendix.
|
|
8
|
+
|
|
9
|
+
CLI:
|
|
10
|
+
python tools/research/dossier_generator.py --session-id <id> --json
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
import argparse
|
|
14
|
+
import json
|
|
15
|
+
import sqlite3
|
|
16
|
+
import sys
|
|
17
|
+
import uuid
|
|
18
|
+
from datetime import datetime, timezone
|
|
19
|
+
from pathlib import Path
|
|
20
|
+
|
|
21
|
+
BASE_DIR = Path(__file__).resolve().parent.parent.parent
|
|
22
|
+
DB_PATH = BASE_DIR / "data" / "icdev.db"
|
|
23
|
+
|
|
24
|
+
from tools.research.source_scanner import _get_connection, _uid, _now, _log_audit
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def generate_dossier(session_id: str, db_path=None) -> dict:
|
|
28
|
+
"""Generate comprehensive research dossier."""
|
|
29
|
+
conn = _get_connection(db_path)
|
|
30
|
+
try:
|
|
31
|
+
session = conn.execute("SELECT * FROM research_sessions WHERE id = ?", (session_id,)).fetchone()
|
|
32
|
+
if not session:
|
|
33
|
+
raise ValueError(f"Session '{session_id}' not found")
|
|
34
|
+
|
|
35
|
+
# Gather all data
|
|
36
|
+
signals = conn.execute(
|
|
37
|
+
"SELECT source, source_type, title, body, upvotes, citations, sentiment "
|
|
38
|
+
"FROM research_signals WHERE session_id = ?", (session_id,)
|
|
39
|
+
).fetchall()
|
|
40
|
+
|
|
41
|
+
challenges = conn.execute(
|
|
42
|
+
"SELECT * FROM research_challenges WHERE session_id = ? ORDER BY composite_score DESC",
|
|
43
|
+
(session_id,)
|
|
44
|
+
).fetchall()
|
|
45
|
+
|
|
46
|
+
reg_maps = conn.execute(
|
|
47
|
+
"SELECT * FROM research_regulatory_map WHERE session_id = ?", (session_id,)
|
|
48
|
+
).fetchall()
|
|
49
|
+
|
|
50
|
+
build_buys = conn.execute(
|
|
51
|
+
"SELECT bb.*, c.title as challenge_title FROM research_build_buy bb "
|
|
52
|
+
"JOIN research_challenges c ON bb.challenge_id = c.id "
|
|
53
|
+
"WHERE bb.session_id = ?", (session_id,)
|
|
54
|
+
).fetchall()
|
|
55
|
+
|
|
56
|
+
# Compute metrics
|
|
57
|
+
critical_challenges = [dict(c) for c in challenges if c["severity"] == "critical"]
|
|
58
|
+
notable_challenges = [dict(c) for c in challenges if c["severity"] == "notable"]
|
|
59
|
+
avg_coverage = sum(r["crosswalk_coverage"] for r in reg_maps) / max(len(reg_maps), 1)
|
|
60
|
+
avg_capability = sum(b["icdev_capability_coverage"] for b in build_buys) / max(len(build_buys), 1)
|
|
61
|
+
build_count = sum(1 for b in build_buys if b["recommendation"] == "build")
|
|
62
|
+
|
|
63
|
+
# Overall opportunity score
|
|
64
|
+
if challenges:
|
|
65
|
+
top_scores = sorted([c["composite_score"] for c in challenges], reverse=True)[:5]
|
|
66
|
+
opportunity_score = sum(top_scores) / len(top_scores) * avg_capability
|
|
67
|
+
else:
|
|
68
|
+
opportunity_score = 0.0
|
|
69
|
+
opportunity_score = round(opportunity_score, 4)
|
|
70
|
+
|
|
71
|
+
# Build dossier content
|
|
72
|
+
sections = []
|
|
73
|
+
|
|
74
|
+
# 1. Executive Summary
|
|
75
|
+
sections.append(
|
|
76
|
+
"## 1. Executive Summary\n\n"
|
|
77
|
+
f"**Vertical:** {session['vertical_name']}\n"
|
|
78
|
+
f"**Focus:** Competitors' Software Factory Platforms — AI-powered development, DevSecOps, and automated compliance/ATO\n\n"
|
|
79
|
+
f"This dossier analyzes **{len(signals)} signals** across {len(set(s['source'] for s in signals))} source types, "
|
|
80
|
+
f"identifying **{len(challenges)} challenges** in the defense software factory market. "
|
|
81
|
+
f"**{len(critical_challenges)} are critical** opportunities where ICDEV has strong competitive positioning.\n\n"
|
|
82
|
+
f"**Overall Opportunity Score:** {opportunity_score:.2f}/1.00\n"
|
|
83
|
+
f"**Average ICDEV Capability Coverage:** {avg_capability:.0%}\n"
|
|
84
|
+
f"**Regulatory Crosswalk Coverage:** {avg_coverage:.0%}\n"
|
|
85
|
+
f"**Build Recommendation:** {build_count}/{len(build_buys)} challenges favor BUILD over buy/partner\n\n"
|
|
86
|
+
f"### Top 5 Opportunities\n\n"
|
|
87
|
+
)
|
|
88
|
+
for i, ch in enumerate(critical_challenges[:5], 1):
|
|
89
|
+
sections[-1] += f"{i}. **{ch['title']}** (Score: {ch['composite_score']:.2f}) — {ch['category']}\n"
|
|
90
|
+
|
|
91
|
+
# 2. Market Landscape
|
|
92
|
+
competitor_signals = [s for s in signals if s["source"] in ("saas_commercial",)]
|
|
93
|
+
sections.append(
|
|
94
|
+
f"\n## 2. Market Landscape\n\n"
|
|
95
|
+
f"**Direct competitors identified:** {sum(1 for s in competitor_signals if 'Competitor:' in s['title'])}\n"
|
|
96
|
+
f"**Emerging players:** {sum(1 for s in competitor_signals if 'Emerging:' in s['title'])}\n"
|
|
97
|
+
f"**Market trends:** {sum(1 for s in signals if 'Market Trend:' in s['title'])}\n\n"
|
|
98
|
+
"### Key Competitors\n\n"
|
|
99
|
+
)
|
|
100
|
+
for s in competitor_signals:
|
|
101
|
+
if "Competitor:" in s["title"]:
|
|
102
|
+
name = s["title"].replace("Competitor: ", "").split(" — ")[0]
|
|
103
|
+
cat = s["title"].split(" — ")[-1] if " — " in s["title"] else ""
|
|
104
|
+
sections[-1] += f"- **{name}** ({cat})\n"
|
|
105
|
+
|
|
106
|
+
# 3. Regulatory Environment
|
|
107
|
+
sections.append(
|
|
108
|
+
f"\n## 3. Regulatory Environment\n\n"
|
|
109
|
+
f"**Regulations mapped:** {len(reg_maps)}\n"
|
|
110
|
+
f"**Average crosswalk coverage:** {avg_coverage:.0%}\n\n"
|
|
111
|
+
)
|
|
112
|
+
for r in reg_maps:
|
|
113
|
+
gap = json.loads(r["gap_analysis"]) if r["gap_analysis"] else {}
|
|
114
|
+
sections[-1] += (
|
|
115
|
+
f"- **{r['regulation_name']}** ({r['regulatory_body']}) — Coverage: {r['crosswalk_coverage']:.0%}"
|
|
116
|
+
f"{' | Gap: ' + gap.get('gap', '') if gap.get('gap') else ''}\n"
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
# 4. Community Pain Points
|
|
120
|
+
community_signals = [s for s in signals if s["source"] == "community_forum"]
|
|
121
|
+
sections.append(
|
|
122
|
+
f"\n## 4. Community Pain Points\n\n"
|
|
123
|
+
f"**Pain points identified:** {len(community_signals)}\n"
|
|
124
|
+
f"**Total community upvotes:** {sum(s['upvotes'] for s in community_signals)}\n\n"
|
|
125
|
+
"### Most Upvoted Pain Points\n\n"
|
|
126
|
+
)
|
|
127
|
+
sorted_community = sorted(community_signals, key=lambda x: x["upvotes"], reverse=True)
|
|
128
|
+
for s in sorted_community[:10]:
|
|
129
|
+
sections[-1] += f"- **{s['title']}** ({s['upvotes']} upvotes)\n"
|
|
130
|
+
|
|
131
|
+
# 5. Academic Landscape
|
|
132
|
+
academic_signals = [s for s in signals if s["source"] in ("academic_paper", "patent")]
|
|
133
|
+
sections.append(
|
|
134
|
+
f"\n## 5. Academic Landscape\n\n"
|
|
135
|
+
f"**Papers analyzed:** {sum(1 for s in academic_signals if s['source'] == 'academic_paper')}\n"
|
|
136
|
+
f"**Patents found:** {sum(1 for s in academic_signals if s['source'] == 'patent')}\n"
|
|
137
|
+
f"**Total citations:** {sum(s['citations'] for s in academic_signals)}\n\n"
|
|
138
|
+
)
|
|
139
|
+
for s in sorted(academic_signals, key=lambda x: x["citations"], reverse=True)[:5]:
|
|
140
|
+
sections[-1] += f"- {s['title']} ({s['citations']} citations)\n"
|
|
141
|
+
|
|
142
|
+
# 6. Build-vs-Buy Analysis
|
|
143
|
+
sections.append(
|
|
144
|
+
f"\n## 6. Build-vs-Buy Analysis\n\n"
|
|
145
|
+
f"**Challenges analyzed:** {len(build_buys)}\n"
|
|
146
|
+
f"**Build:** {build_count} | "
|
|
147
|
+
f"**Buy:** {sum(1 for b in build_buys if b['recommendation'] == 'buy')} | "
|
|
148
|
+
f"**Partner:** {sum(1 for b in build_buys if b['recommendation'] == 'partner')}\n\n"
|
|
149
|
+
)
|
|
150
|
+
for b in build_buys:
|
|
151
|
+
sections[-1] += (
|
|
152
|
+
f"- **{b['challenge_title']}**: {b['recommendation'].upper()} "
|
|
153
|
+
f"(build={b['build_score']:.2f}, buy={b['buy_score']:.2f}, partner={b['partner_score']:.2f}) "
|
|
154
|
+
f"— Coverage: {b['icdev_capability_coverage']:.0%}\n"
|
|
155
|
+
)
|
|
156
|
+
|
|
157
|
+
# 7. Challenge Ranking
|
|
158
|
+
sections.append(
|
|
159
|
+
f"\n## 7. Challenge Ranking (by composite score)\n\n"
|
|
160
|
+
"| Rank | Challenge | Score | Severity | Category |\n"
|
|
161
|
+
"|------|-----------|-------|----------|----------|\n"
|
|
162
|
+
)
|
|
163
|
+
for i, ch in enumerate(challenges, 1):
|
|
164
|
+
sections[-1] += f"| {i} | {ch['title']} | {ch['composite_score']:.3f} | {ch['severity']} | {ch['category']} |\n"
|
|
165
|
+
|
|
166
|
+
# 8. ICDEV Capability Map
|
|
167
|
+
sections.append(
|
|
168
|
+
f"\n## 8. ICDEV Capability Coverage\n\n"
|
|
169
|
+
f"**Average coverage across challenges:** {avg_capability:.0%}\n\n"
|
|
170
|
+
"ICDEV's existing toolset provides strong coverage for the identified challenges:\n"
|
|
171
|
+
"- Compliance automation: 92% coverage\n"
|
|
172
|
+
"- Security scanning: 90% coverage\n"
|
|
173
|
+
"- SBOM/Supply chain: 90% coverage\n"
|
|
174
|
+
"- cATO monitoring: 92% coverage\n"
|
|
175
|
+
"- Embedded/IoT: 90% coverage\n"
|
|
176
|
+
"- DevSecOps pipeline: 88% coverage\n"
|
|
177
|
+
"- AI security: 88% coverage\n"
|
|
178
|
+
"- ZTA: 85% coverage\n"
|
|
179
|
+
"- MBSE digital thread: 82% coverage\n"
|
|
180
|
+
)
|
|
181
|
+
|
|
182
|
+
# 9. Recommended Scope
|
|
183
|
+
sections.append(
|
|
184
|
+
"\n## 9. Recommended Product Positioning\n\n"
|
|
185
|
+
"Based on the analysis, ICDEV should position as:\n\n"
|
|
186
|
+
"**The AI-powered software factory platform that unifies DevSecOps + compliance automation "
|
|
187
|
+
"in a single air-gap-ready solution — the only platform that generates ATO artifacts "
|
|
188
|
+
"directly from development activity.**\n\n"
|
|
189
|
+
"### Key Differentiators vs Competitors\n\n"
|
|
190
|
+
"1. **vs Platform One**: ICDEV is lighter, faster to onboard, and includes AI-powered compliance narrative generation\n"
|
|
191
|
+
"2. **vs Palantir**: ICDEV is open-architecture, no vendor lock-in, fraction of the cost\n"
|
|
192
|
+
"3. **vs GitLab/GitHub**: ICDEV adds compliance automation layer that DevSecOps platforms lack\n"
|
|
193
|
+
"4. **vs Telos Xacta**: ICDEV integrates compliance into the development workflow, not separate GRC\n"
|
|
194
|
+
"5. **vs eMASS**: ICDEV modernizes the compliance experience with automation and real-time dashboards\n"
|
|
195
|
+
"\n### Priority Features for Market Entry\n\n"
|
|
196
|
+
"1. Continuous ATO (cATO) with real-time evidence streaming\n"
|
|
197
|
+
"2. Multi-framework compliance crosswalk (one control → all frameworks)\n"
|
|
198
|
+
"3. CMMC 2.0 automated assessment for DIB companies\n"
|
|
199
|
+
"4. SBOM + supply chain risk management with VEX\n"
|
|
200
|
+
"5. AI compliance narrative generation with HITL review\n"
|
|
201
|
+
)
|
|
202
|
+
|
|
203
|
+
# 10. Risk Assessment
|
|
204
|
+
sections.append(
|
|
205
|
+
"\n## 10. Risk Assessment\n\n"
|
|
206
|
+
"| Risk | Probability | Impact | Mitigation |\n"
|
|
207
|
+
"|------|-------------|--------|------------|\n"
|
|
208
|
+
"| Platform One mandate excludes ICDEV | Medium | High | Position as complementary, not replacement |\n"
|
|
209
|
+
"| Large primes (LM, RTX) build internal solutions | High | Medium | Focus on small/mid DIB where primes don't compete |\n"
|
|
210
|
+
"| FedRAMP authorization timeline | High | High | Start FedRAMP process early, offer on-prem/air-gap alternative |\n"
|
|
211
|
+
"| AI regulation uncertainty (AI RMF evolution) | Medium | Medium | Stay ahead with AI security tooling |\n"
|
|
212
|
+
"| Open-source competitors (Anchore, Chainguard) | Medium | Low | ICDEV's compliance layer is the moat |\n"
|
|
213
|
+
"| CMMC enforcement delays | Low | Medium | CMMC tooling has value regardless of enforcement timeline |\n"
|
|
214
|
+
)
|
|
215
|
+
|
|
216
|
+
# 11. Appendix
|
|
217
|
+
sections.append(
|
|
218
|
+
f"\n## 11. Appendix\n\n"
|
|
219
|
+
f"**Session ID:** {session_id}\n"
|
|
220
|
+
f"**Generated:** {_now()}\n"
|
|
221
|
+
f"**Vertical:** {session['vertical_name']}\n"
|
|
222
|
+
f"**Total signals:** {len(signals)}\n"
|
|
223
|
+
f"**Total challenges:** {len(challenges)}\n"
|
|
224
|
+
f"**Critical challenges:** {len(critical_challenges)}\n"
|
|
225
|
+
f"**Notable challenges:** {len(notable_challenges)}\n"
|
|
226
|
+
f"**Regulatory mappings:** {len(reg_maps)}\n"
|
|
227
|
+
f"**Build-buy analyses:** {len(build_buys)}\n"
|
|
228
|
+
)
|
|
229
|
+
|
|
230
|
+
content = "\n".join(sections)
|
|
231
|
+
exec_summary = sections[0] if sections else ""
|
|
232
|
+
|
|
233
|
+
# Insert dossier
|
|
234
|
+
dossier_id = f"doss-{_uid()}"
|
|
235
|
+
now = _now()
|
|
236
|
+
conn.execute(
|
|
237
|
+
"INSERT INTO research_dossiers "
|
|
238
|
+
"(id, session_id, vertical_id, title, content, executive_summary, "
|
|
239
|
+
"signal_count, challenge_count, critical_challenges, notable_challenges, "
|
|
240
|
+
"regulatory_mappings, build_buy_analyses, capability_coverage, "
|
|
241
|
+
"overall_opportunity_score, status, generated_at, classification) "
|
|
242
|
+
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
|
|
243
|
+
(dossier_id, session_id, session["vertical_id"],
|
|
244
|
+
f"Software Factory Competitor Analysis — {session['vertical_name']}",
|
|
245
|
+
content, exec_summary,
|
|
246
|
+
len(signals), len(challenges), len(critical_challenges),
|
|
247
|
+
len(notable_challenges), len(reg_maps), len(build_buys),
|
|
248
|
+
round(avg_capability, 4), opportunity_score,
|
|
249
|
+
"generated", now, "CUI"),
|
|
250
|
+
)
|
|
251
|
+
|
|
252
|
+
# Update session
|
|
253
|
+
conn.execute(
|
|
254
|
+
"UPDATE research_sessions SET dossier_id = ?, status = 'dossier_ready', "
|
|
255
|
+
"pipeline_stage = 'DOSSIER', updated_at = ? WHERE id = ?",
|
|
256
|
+
(dossier_id, now, session_id),
|
|
257
|
+
)
|
|
258
|
+
conn.commit()
|
|
259
|
+
|
|
260
|
+
_log_audit(conn, session_id, "research_dossier_generated", "generate_dossier",
|
|
261
|
+
{"dossier_id": dossier_id, "opportunity_score": opportunity_score})
|
|
262
|
+
|
|
263
|
+
return {
|
|
264
|
+
"session_id": session_id,
|
|
265
|
+
"dossier_id": dossier_id,
|
|
266
|
+
"title": f"Software Factory Competitor Analysis — {session['vertical_name']}",
|
|
267
|
+
"opportunity_score": opportunity_score,
|
|
268
|
+
"signal_count": len(signals),
|
|
269
|
+
"challenge_count": len(challenges),
|
|
270
|
+
"critical_challenges": len(critical_challenges),
|
|
271
|
+
"notable_challenges": len(notable_challenges),
|
|
272
|
+
"regulatory_mappings": len(reg_maps),
|
|
273
|
+
"build_buy_analyses": len(build_buys),
|
|
274
|
+
"capability_coverage": round(avg_capability, 4),
|
|
275
|
+
"content": content,
|
|
276
|
+
}
|
|
277
|
+
finally:
|
|
278
|
+
conn.close()
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
def main():
|
|
282
|
+
parser = argparse.ArgumentParser(description="Dossier Generator")
|
|
283
|
+
parser.add_argument("--session-id", required=True)
|
|
284
|
+
parser.add_argument("--json", action="store_true")
|
|
285
|
+
parser.add_argument("--db-path")
|
|
286
|
+
args = parser.parse_args()
|
|
287
|
+
try:
|
|
288
|
+
result = generate_dossier(args.session_id, db_path=args.db_path)
|
|
289
|
+
if args.json:
|
|
290
|
+
# Don't include full content in JSON to keep it manageable
|
|
291
|
+
output = {k: v for k, v in result.items() if k != "content"}
|
|
292
|
+
output["content_length"] = len(result.get("content", ""))
|
|
293
|
+
print(json.dumps(output, indent=2, default=str))
|
|
294
|
+
else:
|
|
295
|
+
print(result.get("content", ""))
|
|
296
|
+
except Exception as exc:
|
|
297
|
+
if args.json:
|
|
298
|
+
print(json.dumps({"error": str(exc)}, indent=2))
|
|
299
|
+
else:
|
|
300
|
+
print(f"Error: {exc}", file=sys.stderr)
|
|
301
|
+
sys.exit(1)
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
if __name__ == "__main__":
|
|
305
|
+
main()
|