diff --git a/audit_scorecard.json b/audit_scorecard.json new file mode 100644 index 000000000..fe3c9e5b6 --- /dev/null +++ b/audit_scorecard.json @@ -0,0 +1,403 @@ +{ + "repo": "HeliosLab", + "overall": 54, + "grade": "D+", + "scores": { + "L1 Architecture": 0, + "L2 Dev Loop": 10, + "L3 Agent Loop": 40, + "L4 Observability": 100, + "L5 Security": 100, + "L6 Performance": 25, + "L7 Extensibility": 25, + "L8 Compliance": 100, + "L9 Complexity": 100, + "L10 Type Safety": 50, + "L11 Dependencies": 40, + "L12 Error Handling": 55, + "L13 Logging": 55, + "L14 Data Layer": 70, + "L15 API Surface": 50, + "L16 Frontend": 80, + "L17 I18n/A11y": 45, + "L18 Concurrency": 60, + "L19 Memory": 45, + "L20 Config": 50, + "L21 Testing Depth": 40, + "L22 Fuzzing": 35, + "L23 Release": 75, + "L24 Migration": 50, + "L25 Vendor Lockin": 100, + "L26 Event Driven": 55, + "L27 Infrastructure": 35, + "L28 Cost Efficiency": 55, + "L29 Monitoring": 30, + "L30 Onboarding": 60 + }, + "details": { + "L1 Architecture": { + "details": "No source files found.", + "raw": {} + }, + "L2 Dev Loop": { + "details": "0 test files, 0 collected, 0 errors.", + "raw": {} + }, + "L3 Agent Loop": { + "details": "CLI: MISSING. CI: 21 workflows.", + "raw": {} + }, + "L4 Observability": { + "details": "Docs: 8/8 canonical files.", + "raw": {} + }, + "L5 Security": { + "details": "Secret-like patterns: 0.", + "raw": {} + }, + "L6 Performance": { + "details": "Async defs: 0, awaits: 0.", + "raw": {} + }, + "L7 Extensibility": { + "details": "0 source files. Config: 0 features.", + "raw": {} + }, + "L8 Compliance": { + "details": "Commits: 20. SSOT: True.", + "raw": {} + }, + "L9 Complexity": { + "details": "Long funcs: 0, nested blocks: 0, branches: 0.", + "raw": {} + }, + "L10 Type Safety": { + "details": "Type coverage: 0/0 (0%). Dataclasses: 0.", + "raw": {} + }, + "L11 Dependencies": { + "details": "Lock: False, Requirements: False.", + "raw": {} + }, + "L12 Error Handling": { + "details": "Try blocks: 0, bare excepts: 0, custom exceptions: 0, retry: 0.", + "raw": {} + }, + "L13 Logging": { + "details": "Logger imports: 0, structured: 0.", + "raw": {} + }, + "L14 Data Layer": { + "details": "ORM: 0, Migrations: 0, Redis: 0, SQLite: 0.", + "raw": {} + }, + "L15 API Surface": { + "details": "FastAPI: 0, Flask: 0, Endpoints: 0, OpenAPI: 0.", + "raw": {} + }, + "L16 Frontend": { + "details": "HTML: 44, JS: 189, CSS: 6, Templates: 0, React: 0.", + "raw": {} + }, + "L17 I18n/A11y": { + "details": "Locale files: 0, gettext: 0, aria: 0.", + "raw": {} + }, + "L18 Concurrency": { + "details": "Threading: 0, MP: 0, Locks: 0, Queue: 0.", + "raw": {} + }, + "L19 Memory": { + "details": "Context managers: 0, GC: 0, Weakref: 0, Cleanup: 0.", + "raw": {} + }, + "L20 Config": { + "details": "Env refs: 0, Dotenv: 0, Pydantic: 0, Config files: 51.", + "raw": {} + }, + "L21 Testing Depth": { + "details": "Parametrize: 0, Fixtures: 0, Mock: 0, Patch: 0.", + "raw": {} + }, + "L22 Fuzzing": { + "details": "Hypothesis: 0, Fuzzing: 0, Property tests: 0.", + "raw": {} + }, + "L23 Release": { + "details": "Version file: False, Tags: 114, Semver: 113, Changelog: True.", + "raw": {} + }, + "L24 Migration": { + "details": "Deprecated: 0, Warnings: 0, Migrations: 0.", + "raw": {} + }, + "L25 Vendor Lockin": { + "details": "AWS: 0, Azure: 0, GCP: 0, Generic: 0.", + "raw": {} + }, + "L26 Event Driven": { + "details": "Event bus: 0, Queue: 0, Pubsub: 0, Kafka: 0, Celery: 0.", + "raw": {} + }, + "L27 Infrastructure": { + "details": "Docker: 0, Compose: 0, K8s: 0, Terraform: 0.", + "raw": {} + }, + "L28 Cost Efficiency": { + "details": "Batching: 0, N+1: 0, Bulk: 0, Pagination: 0.", + "raw": {} + }, + "L29 Monitoring": { + "details": "Prometheus: 0, Health: 0, Tracing: 0, Metrics: 0, SLO: 0.", + "raw": {} + }, + "L30 Onboarding": { + "details": "Makefile: 0, Devcontainer: 1, Setup: 0, README: 1.", + "raw": {} + } + }, + "raw": { + "source": { + "total": 0, + "over_500": 0, + "over_350": 0, + "oversized_files": [] + }, + "tests": { + "total": 0, + "unit": 0, + "integration": 0, + "e2e": 0, + "files": [] + }, + "collection": { + "collected": 0, + "errors": 0, + "timeout": false + }, + "cli": { + "exists": false, + "cmd": null, + "has_subcommands": false, + "help_length": 0 + }, + "docs": { + "has_docs_dir": true, + "files": { + "README": true, + "ARCHITECTURE": true, + "SSOT": true, + "CLAUDE": true, + "AGENTS": true, + "CONTRIBUTING": true, + "CHANGELOG": true, + "LICENSE": true + } + }, + "security": { + "hardcoded_api_key": 0, + "hardcoded_secret": 0, + "hardcoded_password": 0, + "hardcoded_token": 0 + }, + "benchmarks": { + "has_benchmarks": false, + "has_contract_smoke": false, + "has_context7_smoke": false, + "has_check_regression": false + }, + "async": { + "async_def": 0, + "await": 0, + "asyncio_import": 0, + "httpx_import": 0, + "aiohttp_import": 0 + }, + "pyproject": { + "exists": false + }, + "git": { + "has_git": true, + "recent_commits": 20, + "has_merge_commits": false + }, + "ci": { + "has_github_actions": true, + "workflow_files": [ + "coverage.yml", + "release.yml", + "quality-gate.yml", + "cargo-deny.yml", + "deploy-docs.yml", + "trufflehog.yml", + "alert-sync-issues.yml", + "pr-governance-gate.yml", + "codeql.yml", + "journey-gate.yml", + "security-guard.yml", + "release-attestation.yml", + "governance.yml", + "sast.yml", + "security-guard-hook-audit.yml", + "build-release.yml", + "cargo-audit.yml", + "ci.yml", + "codeql-rust.yml", + "required-check-names-guard.yml", + "scorecard.yml" + ], + "has_precommit": true + }, + "complexity": { + "long_functions": 0, + "nested_blocks": 0, + "branches": 0 + }, + "type_safety": { + "annotated_funcs": 0, + "total_funcs": 0, + "dataclasses": 0, + "protocols": 0, + "typeddicts": 0, + "generics": 0 + }, + "dependencies": { + "has_lock": false, + "has_requirements": false, + "has_constraints": false, + "dep_count": 0 + }, + "error_handling": { + "try_blocks": 0, + "bare_excepts": 0, + "custom_exceptions": 0, + "retry_decorators": 0 + }, + "logging": { + "logger_imports": 0, + "structured_logging": 0 + }, + "data_layer": { + "orm_refs": 0, + "migration_files": 0, + "redis_refs": 0, + "sqlite_refs": 0 + }, + "api_surface": { + "fastapi": 0, + "flask": 0, + "endpoints": 0, + "openapi": 0 + }, + "frontend": { + "html_files": 44, + "js_files": 189, + "css_files": 6, + "templates": 0, + "react_components": 0 + }, + "i18n_a11y": { + "locale_files": 0, + "gettext_refs": 0, + "aria_refs": 0 + }, + "concurrency": { + "threading_refs": 0, + "multiprocessing_refs": 0, + "lock_refs": 0, + "queue_refs": 0 + }, + "memory": { + "context_managers": 0, + "gc_refs": 0, + "weakref_refs": 0, + "cleanup_refs": 0 + }, + "config": { + "env_refs": 0, + "dotenv_refs": 0, + "pydantic_settings": 0, + "config_files": 51 + }, + "testing_depth": { + "parametrize": 0, + "fixtures": 0, + "mock": 0, + "patch": 0 + }, + "fuzzing": { + "hypothesis": 0, + "fuzzing": 0, + "property_tests": 0 + }, + "release": { + "has_version_file": false, + "tag_count": 114, + "semver_tags": 113, + "has_changelog": true + }, + "migration": { + "deprecated_decorators": 0, + "warning_refs": 0, + "migration_scripts": 0 + }, + "vendor_lockin": { + "aws_refs": 0, + "azure_refs": 0, + "gcp_refs": 0, + "generic_refs": 0 + }, + "event_driven": { + "event_bus": 0, + "queue": 0, + "pubsub": 0, + "kafka": 0, + "celery": 0 + }, + "infrastructure": { + "dockerfile": 0, + "docker_compose": 0, + "k8s_manifests": 0, + "terraform_files": 0 + }, + "cost_efficiency": { + "batching_refs": 0, + "n_plus_one_refs": 0, + "bulk_refs": 0, + "pagination_refs": 0 + }, + "monitoring": { + "prometheus": 0, + "health_checks": 0, + "tracing": 0, + "metrics": 0, + "slo": 0 + }, + "onboarding": { + "makefile": 0, + "devcontainer": 1, + "setup_scripts": 0, + "readme_setup": 1 + }, + "all_ast": { + "long_functions": 0, + "nested_blocks": 0, + "branches": 0, + "annotated_funcs": 0, + "total_funcs": 0, + "dataclasses": 0, + "protocols": 0, + "typeddicts": 0, + "generics": 0, + "async_def": 0, + "await": 0, + "asyncio_import": 0, + "httpx_import": 0, + "aiohttp_import": 0, + "try_blocks": 0, + "bare_excepts": 0, + "custom_exceptions": 0, + "retry_decorators": 0 + } + } +} \ No newline at end of file diff --git a/docs/boundary/HeliosLab.md b/docs/boundary/HeliosLab.md new file mode 100644 index 000000000..d37167485 --- /dev/null +++ b/docs/boundary/HeliosLab.md @@ -0,0 +1,46 @@ + +--- +repo: "HeliosLab" +role: unknown +status: active +last_boundary_review: 2026-06-17 +review_cadence: 30d +in_scope: + - "" +out_of_scope: + - "" +--- + +# Boundary — HeliosLab + +## In Scope + + + +## Out of Scope + +| Not here | Lives in | Reason | +| -------- | -------- | ------ | +| | | | + +## Boundary Crossings + +| Crossing | Direction | Surface | Status | +| -------- | --------- | ------- | ------ | +| | | | | + +## Last Boundary Review + +**Date:** 2026-06-17 +**Reviewer:** forge subagent (L7-001 sweep) +**Worklog / finding:** `worklogs/L7-001-intent-boundary-curation-2026-06-17.json` +**Decisions:** +- Initial scaffolding; needs human review. + +**Next review:** 2026-07-17 diff --git a/docs/intent/HeliosLab.md b/docs/intent/HeliosLab.md new file mode 100644 index 000000000..7f539021e --- /dev/null +++ b/docs/intent/HeliosLab.md @@ -0,0 +1,110 @@ + +--- +repo: "HeliosLab" +aliases: [] +role: unknown +status: active +last_verified: 2026-06-17 +bound_prompts: 66 +bound_plans: 1 +bound_responses: 0 +device: macbook +--- + +# Intent — HeliosLab + +## Intent Statement + + + +## Bound Prompts + +| Date | Source | File | Tag | +| ---- | ------ | ---- | --- | +| 2026-05-28 | claude-code | `docs/curated-prompts/claude-code/2026-05/d87352b4714bca76.md` | implementation | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/93c3aecc97b9b258.md` | bugfix | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/1a74e5807a487559.md` | bugfix | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/5a788f265e9413e6.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/10ae5be9ce4ba058.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/a13502736b50f7ec.md` | bugfix | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/1be6ea8231db2d30.md` | bugfix | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/9e33a01e3ede0102.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/f29c46ea98316964.md` | bugfix | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/6a530f00e39d650e.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/5f4a187daef3f689.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/d9042c944d252eb7.md` | repo-defining | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/d041d08cc9810f1b.md` | bugfix | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/171f22939e569ec9.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/d610b00e94890eee.md` | narrative | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/d7ef9fb87745f129.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/a7a64dd26999a450.md` | bugfix | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/d7f3b5d85cbbf3b4.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/5bf737e753cf6776.md` | implementation | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/f7ff031aacb69f62.md` | implementation | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/0d068091fff88a2b.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/2b5dcf250357c5ce.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/a47babda41f20a5c.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/a2194d6d4fed9ce9.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/3ea5a7d397ed12ea.md` | narrative | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/a39ec074c6be75e3.md` | bugfix | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/be1e53aa7b7dcfc2.md` | repo-defining | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/7fd97a66b53ce054.md` | implementation | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/ff1e66e6888400df.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/7aec1b098253e913.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/722ceb299bed9f56.md` | implementation | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/9bafefde50dd4692.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/6a7dac7e523881d8.md` | narrative | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/33979e9bb0917ae4.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/25f278edb265d876.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/0a48e435c9ef908f.md` | narrative | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/430d5f1fe9e20309.md` | bugfix | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/b46c2603035e00d1.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/0dbc00ca96f7e4b3.md` | bugfix | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/a466693b84c71cb0.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/51a15427a4d86a05.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/f27c9e6cae773d9f.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/de173411c5240065.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/6109f8b64b7197de.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/74fca20f05f6c560.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/f704fa3a09641c79.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/67edca6284f42f3b.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/8d6a5b60202a897d.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/62d2c9e62a7ec794.md` | policy-setting | +| ? | claude-code | `docs/curated-prompts/claude-code/unknown/f10adba6fc28f84c.md` | policy-setting | + +_…and 16 more. See `_bindings.json` for full list._ + +## Bound Plans + +| Date | Source | File | Status | +| ---- | ------ | ---- | ------ | +| 2026-06-05 | claude-code | `docs/curated-plans/claude-code/2026-06/e7903214ba465c75.md` | approved | + +## Bound Responses (specs, ideas, plans from agents) + +| Date | Source | File | Kind | +| ---- | ------ | ---- | ---- | + +## Boundary + +See: [`docs/boundary/HeliosLab.md`](../boundary/HeliosLab.md) + +## Ecosystem Role + + + +## Open Questions + +- + +## Change Log + +| Date | Change | Worklog | +| ---- | ------ | ------- | +| 2026-06-17 | Initial binding (L7-001 sweep) | `worklogs/L7-001-intent-boundary-curation-2026-06-17.json` |