coding-os 0.3.2__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.
- adapters/claude/README.md +6 -0
- adapters/claude/_install_helpers/extract_stacks.py +43 -0
- adapters/claude/_install_helpers/update_mcp_json.py +75 -0
- adapters/claude/adapter.yaml +164 -0
- adapters/claude/hooks/README.md +40 -0
- adapters/claude/hooks/agent_memory_sync.py +131 -0
- adapters/claude/hooks/ensure-agent-memory-link.sh +36 -0
- adapters/claude/hooks/sync-agent-memory.sh +21 -0
- adapters/claude/install.sh +86 -0
- adapters/claude/sdk_dispatcher.py +871 -0
- adapters/claude/settings.local.template.json +31 -0
- adapters/claude/settings.template.json +808 -0
- adapters/claude/update_mcp_json.py +85 -0
- adapters/codex/adapter.yaml +254 -0
- adapters/codex/chat_provider.py +230 -0
- adapters/codex/commands/formula-f1.md +129 -0
- adapters/codex/commands/formula-f10.md +100 -0
- adapters/codex/commands/formula-f11.md +123 -0
- adapters/codex/commands/formula-f2.md +139 -0
- adapters/codex/commands/formula-f3.md +127 -0
- adapters/codex/commands/formula-f4.md +101 -0
- adapters/codex/commands/formula-f5.md +135 -0
- adapters/codex/commands/formula-f6.md +147 -0
- adapters/codex/commands/formula-f7.md +111 -0
- adapters/codex/commands/formula-f8.md +133 -0
- adapters/codex/commands/formula-f9.md +112 -0
- adapters/codex/enable_codex_hooks.py +94 -0
- adapters/codex/ensure_codex_mcp.py +124 -0
- adapters/codex/hooks/codex-merge-hook-output.py +72 -0
- adapters/codex/hooks/codex-normalize-edit.py +96 -0
- adapters/codex/hooks/codex-postedit-dispatch.sh +75 -0
- adapters/codex/hooks/codex-posttool-dispatch.sh +70 -0
- adapters/codex/hooks/codex-preedit-dispatch.sh +83 -0
- adapters/codex/hooks/codex-pretool-dispatch.sh +82 -0
- adapters/codex/hooks/codex-sessionend-dispatch.sh +20 -0
- adapters/codex/hooks/codex-sessionstart-dispatch.sh +68 -0
- adapters/codex/hooks/codex-stop-dispatch.sh +73 -0
- adapters/codex/hooks/codex-userpromptsubmit-dispatch.sh +74 -0
- adapters/codex/hooks.template.json +208 -0
- adapters/codex/install.sh +83 -0
- adapters/codex/sdk_dispatcher.py +449 -0
- board_os/__init__.py +39 -0
- board_os/_agent_runtime.py +256 -0
- board_os/config.py +421 -0
- board_os/git_coherence.py +107 -0
- board_os/hub_adapter_manifest.py +140 -0
- board_os/mcp_tools.py +3228 -0
- board_os/migration.py +166 -0
- board_os/parser.py +317 -0
- board_os/presence.py +156 -0
- board_os/sync.py +320 -0
- board_os/transition_gates.py +224 -0
- board_os/transition_gates_cli.py +272 -0
- board_os/transition_gates_validator.py +551 -0
- board_os/verify_suites.py +126 -0
- board_os/verify_suites_cli.py +328 -0
- board_os/workflow.py +967 -0
- cli/__init__.py +0 -0
- cli/_data_types.py +248 -0
- cli/_init_helpers.py +587 -0
- cli/_resources.py +100 -0
- cli/adapter_registry.py +239 -0
- cli/add_stack.py +315 -0
- cli/aggregator.py +438 -0
- cli/board_commands.py +1218 -0
- cli/brain_commands.py +255 -0
- cli/cognition.py +345 -0
- cli/config_composer.py +349 -0
- cli/core_version.py +41 -0
- cli/cron_commands.py +278 -0
- cli/db_reset.py +298 -0
- cli/doc_commands.py +111 -0
- cli/doctor.py +2953 -0
- cli/doctor_board.py +365 -0
- cli/doctor_extras.py +1121 -0
- cli/doctor_graph.py +608 -0
- cli/doctor_tokens.py +254 -0
- cli/graph_commands.py +1265 -0
- cli/hook_renderer.py +393 -0
- cli/hub_commands.py +580 -0
- cli/list_adapters.py +79 -0
- cli/list_stacks.py +105 -0
- cli/logs_commands.py +89 -0
- cli/main.py +3070 -0
- cli/materialize_file.py +65 -0
- cli/mcp_start.py +153 -0
- cli/module_commands.py +513 -0
- cli/pr_commands.py +2024 -0
- cli/preset_commands.py +126 -0
- cli/preset_registry.py +171 -0
- cli/project_overrides.py +119 -0
- cli/registry.py +365 -0
- cli/remove_stack.py +492 -0
- cli/renderer.py +620 -0
- cli/setup.py +464 -0
- cli/skill_commands.py +689 -0
- cli/skill_registry.py +235 -0
- cli/skills_list.py +332 -0
- cli/stack_lint.py +351 -0
- cli/stack_registry.py +688 -0
- cli/subsystems.py +335 -0
- cli/sync_all.py +310 -0
- cli/tail_command.py +410 -0
- cli/update.py +608 -0
- cli/verify_since_edit.py +439 -0
- coding_os-0.3.2.dist-info/METADATA +508 -0
- coding_os-0.3.2.dist-info/RECORD +1304 -0
- coding_os-0.3.2.dist-info/WHEEL +5 -0
- coding_os-0.3.2.dist-info/entry_points.txt +5 -0
- coding_os-0.3.2.dist-info/licenses/LICENSE +201 -0
- coding_os-0.3.2.dist-info/top_level.txt +10 -0
- core/__init__.py +0 -0
- core/board_os/__init__.py +39 -0
- core/board_os/_agent_runtime.py +256 -0
- core/board_os/config.py +421 -0
- core/board_os/git_coherence.py +107 -0
- core/board_os/hub_adapter_manifest.py +140 -0
- core/board_os/mcp_tools.py +3228 -0
- core/board_os/migration.py +166 -0
- core/board_os/parser.py +317 -0
- core/board_os/presence.py +156 -0
- core/board_os/sync.py +320 -0
- core/board_os/transition-gates.yaml +176 -0
- core/board_os/transition_gates.py +224 -0
- core/board_os/transition_gates_cli.py +272 -0
- core/board_os/transition_gates_validator.py +551 -0
- core/board_os/verify-suites.yaml +113 -0
- core/board_os/verify_suites.py +126 -0
- core/board_os/verify_suites_cli.py +328 -0
- core/board_os/workflow.py +967 -0
- core/commands/board.md +27 -0
- core/commands/classify.md +23 -0
- core/commands/compose.md +23 -0
- core/commands/daily.md +31 -0
- core/commands/diagnose.md +7 -0
- core/commands/memory-search.md +23 -0
- core/commands/new-project.md +33 -0
- core/commands/retro.md +38 -0
- core/commands/review.md +14 -0
- core/commands/task.md +17 -0
- core/commands/verify.md +34 -0
- core/docs/thinking_os-final-edition.md +1449 -0
- core/doctor-config.yaml +74 -0
- core/graph_os/__init__.py +29 -0
- core/graph_os/backend.py +233 -0
- core/graph_os/backends/__init__.py +13 -0
- core/graph_os/backends/sqlite_backend.py +1053 -0
- core/graph_os/bench/__init__.py +17 -0
- core/graph_os/bench/fixtures.py +56 -0
- core/graph_os/bench/harness.py +95 -0
- core/graph_os/bench/persian_precision.py +142 -0
- core/graph_os/bench/scale_500k.py +120 -0
- core/graph_os/bench/token_cost.py +170 -0
- core/graph_os/bench/viewer_fps.py +110 -0
- core/graph_os/communities.py +410 -0
- core/graph_os/enterprise.py +218 -0
- core/graph_os/entry_points.py +226 -0
- core/graph_os/extractors/__init__.py +25 -0
- core/graph_os/extractors/code_generic.py +914 -0
- core/graph_os/extractors/code_go.py +1422 -0
- core/graph_os/extractors/code_json.py +340 -0
- core/graph_os/extractors/code_php.py +979 -0
- core/graph_os/extractors/code_python.py +1454 -0
- core/graph_os/extractors/code_shell.py +538 -0
- core/graph_os/extractors/code_toml.py +302 -0
- core/graph_os/extractors/code_ts.py +1665 -0
- core/graph_os/extractors/code_yaml.py +394 -0
- core/graph_os/extractors/contracts.py +1592 -0
- core/graph_os/extractors/md_links.py +890 -0
- core/graph_os/extractors/task_deps.py +345 -0
- core/graph_os/groups/__init__.py +22 -0
- core/graph_os/groups/cross_repo.py +156 -0
- core/graph_os/groups/manifest.py +141 -0
- core/graph_os/ingest/__init__.py +19 -0
- core/graph_os/ingest/base.py +306 -0
- core/graph_os/ingest/github.py +112 -0
- core/graph_os/ingest/zip.py +95 -0
- core/graph_os/toolchain.py +393 -0
- core/graph_os/tools/__init__.py +9 -0
- core/graph_os/tools/graph.py +5573 -0
- core/graph_os/tools/reindex_dispatch.py +730 -0
- core/graph_os/tree_sitter_overlay.py +235 -0
- core/graph_os/types.py +252 -0
- core/graph_os/vec_index.py +277 -0
- core/graph_os/viewer/__init__.py +12 -0
- core/graph_os/viewer/exporter.py +93 -0
- core/graph_os/viewer/template.py +189 -0
- core/hooks/_helpers/_paths.py +40 -0
- core/hooks/_helpers/advance_role.py +72 -0
- core/hooks/_helpers/auto_compose.py +228 -0
- core/hooks/_helpers/auto_validate_lessons.py +55 -0
- core/hooks/_helpers/branch_guard_check.py +796 -0
- core/hooks/_helpers/check_commit_message.py +108 -0
- core/hooks/_helpers/check_dangerous_rm.py +80 -0
- core/hooks/_helpers/check_git_bypass.py +154 -0
- core/hooks/_helpers/check_git_destructive.py +77 -0
- core/hooks/_helpers/check_settings_write.py +97 -0
- core/hooks/_helpers/consume_override.py +51 -0
- core/hooks/_helpers/context_budget.py +77 -0
- core/hooks/_helpers/cos_say_json.py +103 -0
- core/hooks/_helpers/destructive_edit_check.py +163 -0
- core/hooks/_helpers/detect_status_transition.py +82 -0
- core/hooks/_helpers/digest_regen.py +56 -0
- core/hooks/_helpers/doc_sync_check.py +498 -0
- core/hooks/_helpers/drain_embedding_outbox.py +52 -0
- core/hooks/_helpers/extract_additional_context.py +51 -0
- core/hooks/_helpers/extract_commit_msg_arg.py +74 -0
- core/hooks/_helpers/git_command_parse.py +424 -0
- core/hooks/_helpers/git_settings_fields.py +47 -0
- core/hooks/_helpers/graph_context_match.py +37 -0
- core/hooks/_helpers/graph_marker_check.py +70 -0
- core/hooks/_helpers/jit_recall.py +56 -0
- core/hooks/_helpers/json_field.py +41 -0
- core/hooks/_helpers/narrative_signal.py +59 -0
- core/hooks/_helpers/observation_count.py +31 -0
- core/hooks/_helpers/pre_commit_batch.py +177 -0
- core/hooks/_helpers/pre_commit_fake_input.py +42 -0
- core/hooks/_helpers/presence_gc.py +102 -0
- core/hooks/_helpers/presence_write.py +167 -0
- core/hooks/_helpers/recover_indirect.py +35 -0
- core/hooks/_helpers/routing_evolution.py +104 -0
- core/hooks/_helpers/session_recap.py +72 -0
- core/hooks/_helpers/skill_primer.py +229 -0
- core/hooks/_helpers/task_sync.py +59 -0
- core/hooks/_helpers/tool_failure_capture.py +147 -0
- core/hooks/_helpers/trajectory_autosnap.py +278 -0
- core/hooks/_helpers/trajectory_startup.py +62 -0
- core/hooks/_helpers/turn_summary.py +82 -0
- core/hooks/_helpers/validate_task_frontmatter.py +98 -0
- core/hooks/_helpers/wip_limit_check.py +103 -0
- core/hooks/_helpers/wip_lines.py +53 -0
- core/hooks/_helpers/work_log_append.py +89 -0
- core/hooks/_helpers/wrap_dispatch_output.py +82 -0
- core/hooks/advance-role.sh +48 -0
- core/hooks/agent-presence.sh +179 -0
- core/hooks/auto-brain-decay.sh +184 -0
- core/hooks/auto-compose-roles.sh +83 -0
- core/hooks/auto-graph-reconcile-shell.sh +119 -0
- core/hooks/auto-regen-doc-index.sh +120 -0
- core/hooks/auto-reindex-docs.sh +130 -0
- core/hooks/auto-task-sync.sh +56 -0
- core/hooks/auto-trace-rotate.sh +88 -0
- core/hooks/block-bad-patterns.sh +212 -0
- core/hooks/block-dangerous-commands.sh +182 -0
- core/hooks/block-hardcoded-literals.sh +90 -0
- core/hooks/block-migration-conflict.sh +114 -0
- core/hooks/block-protected-files.sh +129 -0
- core/hooks/block-secrets.sh +185 -0
- core/hooks/block-shared-tree-edit.sh +75 -0
- core/hooks/block-uv-heredoc.sh +78 -0
- core/hooks/branch-guard.sh +122 -0
- core/hooks/capture-observation.sh +76 -0
- core/hooks/capture-tool-failure.sh +24 -0
- core/hooks/capture-work-log.sh +89 -0
- core/hooks/check-agents-md-refs.sh +75 -0
- core/hooks/check-agents-md-size.sh +49 -0
- core/hooks/check-capture-worked.sh +148 -0
- core/hooks/check-doc-size.sh +61 -0
- core/hooks/check-mcp-extras.sh +92 -0
- core/hooks/check-state.sh +87 -0
- core/hooks/classify-task-mode.sh +103 -0
- core/hooks/cos-env.sh +1301 -0
- core/hooks/drain-embedding-outbox.sh +24 -0
- core/hooks/enforce-anti-ambiguity.sh +74 -0
- core/hooks/enforce-commit-message.sh +73 -0
- core/hooks/enforce-doc-anchor.sh +224 -0
- core/hooks/enforce-doc-sync.sh +206 -0
- core/hooks/enforce-graph-context.sh +89 -0
- core/hooks/enforce-graph-first-read.sh +94 -0
- core/hooks/enforce-memory-check.sh +128 -0
- core/hooks/enforce-rename-plan.sh +78 -0
- core/hooks/enforce-scaffold-boundary.sh +68 -0
- core/hooks/enforce-skill.sh +125 -0
- core/hooks/enforce-task-body.sh +52 -0
- core/hooks/enforce-task-start.sh +81 -0
- core/hooks/enforce-task-transition.sh +75 -0
- core/hooks/enforce-template.sh +143 -0
- core/hooks/enforce-verify.sh +112 -0
- core/hooks/enforce-wip-limit.sh +43 -0
- core/hooks/enforce-zoom.sh +69 -0
- core/hooks/ensure-hub-up.sh +67 -0
- core/hooks/inject-mcp-caller-session.sh +70 -0
- core/hooks/jit-recall.sh +65 -0
- core/hooks/link-commit-to-task.sh +143 -0
- core/hooks/lint-task.sh +40 -0
- core/hooks/nudge-docs-first.sh +71 -0
- core/hooks/nudge-git-mode.sh +29 -0
- core/hooks/nudge-graph-os.sh +118 -0
- core/hooks/nudge-learn-narrative.sh +36 -0
- core/hooks/nudge-model-routing.sh +32 -0
- core/hooks/nudge-reentry.sh +101 -0
- core/hooks/nudge-reuse-first.sh +68 -0
- core/hooks/nudge-task-discovery.sh +81 -0
- core/hooks/nudge-thinking-os.sh +109 -0
- core/hooks/pr-reap.sh +23 -0
- core/hooks/reclaim-sweep.sh +58 -0
- core/hooks/record-verify-auto.sh +77 -0
- core/hooks/record-verify.sh +74 -0
- core/hooks/regen-reminder.sh +104 -0
- core/hooks/registry.yaml +1262 -0
- core/hooks/remind-daily.sh +27 -0
- core/hooks/remind-dogfood.sh +70 -0
- core/hooks/remind-learn-validate.sh +94 -0
- core/hooks/rules-primer.sh +50 -0
- core/hooks/search-enforce-inventory.sh +108 -0
- core/hooks/search-verify-remaining.sh +132 -0
- core/hooks/session-context.sh +729 -0
- core/hooks/session-end.sh +145 -0
- core/hooks/session-skill-primer.sh +43 -0
- core/hooks/snapshot-transcript.sh +56 -0
- core/hooks/sync-task-current.sh +85 -0
- core/hooks/test-first-reminder.sh +120 -0
- core/hooks/test-governor.sh +173 -0
- core/hooks/thinking_os-gate.sh +52 -0
- core/hooks/track-backtrack.sh +35 -0
- core/hooks/track-discovery.sh +121 -0
- core/hooks/track-skill.sh +53 -0
- core/hooks/validate-task-frontmatter.sh +49 -0
- core/hooks/verify-rename-callers.sh +119 -0
- core/hooks/warn-abandoned-task.sh +99 -0
- core/hooks/warn-destructive-edit.sh +64 -0
- core/hooks/warn-diff-size.sh +43 -0
- core/hooks/warn-graph-empty.sh +81 -0
- core/hooks/warn-mcp-down.sh +190 -0
- core/hooks/write-state.sh +55 -0
- core/logging_os/__init__.py +33 -0
- core/logging_os/api.py +127 -0
- core/logging_os/bridge.py +80 -0
- core/logging_os/config.py +172 -0
- core/logging_os/fingerprint.py +25 -0
- core/logging_os/redact.py +53 -0
- core/logging_os/render.py +83 -0
- core/logging_os/sinks.py +164 -0
- core/rules/anti-overengineering.md +44 -0
- core/rules/api-contract-discipline.md +41 -0
- core/rules/dimension-registry.md +155 -0
- core/rules/git-workflow.md +57 -0
- core/rules/memory.md +46 -0
- core/rules/model-routing.md +22 -0
- core/rules/skill-enforcement.md +75 -0
- core/rules/test-discipline.md +38 -0
- core/rules/thinking_os.md +48 -0
- core/rules/transparency-banner.md +37 -0
- core/runtime_paths.yaml +36 -0
- core/scaffold_manifest.json +14430 -0
- core/scheduled/__init__.py +0 -0
- core/scheduled/_activity.py +126 -0
- core/scheduled/_state.py +113 -0
- core/scheduled/config.py +86 -0
- core/scheduled/dep_reconcile.py +135 -0
- core/scheduled/error_sweep.py +137 -0
- core/scheduled/nightly.py +930 -0
- core/scheduled/responsive_extract.py +65 -0
- core/schemas/adapter.schema.json +269 -0
- core/schemas/preset.schema.json +50 -0
- core/schemas/skill.schema.json +81 -0
- core/schemas/stack.schema.json +404 -0
- core/scripts/_lib.sh +9 -0
- core/scripts/docs-lint.sh +228 -0
- core/scripts/docs-nav-fix.sh +133 -0
- core/scripts/docs-staleness-check.sh +154 -0
- core/scripts/install-adapter.sh +266 -0
- core/scripts/link-stack-skills.sh +52 -0
- core/scripts/log-latest.sh +106 -0
- core/scripts/log-search.sh +89 -0
- core/scripts/log-write.sh +134 -0
- core/scripts/ref-resolve.sh +71 -0
- core/skills/a11y/SKILL.md +305 -0
- core/skills/a11y/assets/a11y-checklist.md +137 -0
- core/skills/a11y/references/aria-and-focus.md +247 -0
- core/skills/a11y/references/rn-accessibility.md +343 -0
- core/skills/a11y/references/screen-reader-testing.md +190 -0
- core/skills/agent-memory/SKILL.md +191 -0
- core/skills/agent-memory/assets/memory-checklist.md +21 -0
- core/skills/agent-memory/references/memory-recipes.md +57 -0
- core/skills/api-design/SKILL.md +232 -0
- core/skills/api-design/assets/api-design-checklist.md +110 -0
- core/skills/api-design/references/error-envelope.md +381 -0
- core/skills/api-design/references/idempotency-pagination.md +312 -0
- core/skills/api-design/references/rest-contracts.md +426 -0
- core/skills/auth-patterns/SKILL.md +352 -0
- core/skills/auth-patterns/assets/auth-checklist.md +118 -0
- core/skills/auth-patterns/references/jwt-and-service-tokens.md +343 -0
- core/skills/auth-patterns/references/passkeys-2fa.md +289 -0
- core/skills/auth-patterns/references/sessions-vs-jwt.md +230 -0
- core/skills/auth-patterns/scripts/cookie-flag-check.py +146 -0
- core/skills/backend-fundamentals/SKILL.md +238 -0
- core/skills/backend-fundamentals/assets/backend-checklist.md +27 -0
- core/skills/backend-fundamentals/references/backend-patterns.md +56 -0
- core/skills/backend-fundamentals/scripts/check_layering.py +83 -0
- core/skills/clean-code/SKILL.md +642 -0
- core/skills/clean-code/scripts/audit-fail-closed.py +167 -0
- core/skills/codebase-explorer/SKILL.md +89 -0
- core/skills/codebase-explorer/assets/reading-checklist.md +24 -0
- core/skills/codebase-explorer/references/reading-strategies.md +52 -0
- core/skills/codebase-explorer/scripts/outline.py +99 -0
- core/skills/db-design/SKILL.md +327 -0
- core/skills/db-design/assets/migration-template.sql +49 -0
- core/skills/db-design/references/migration-discipline.md +290 -0
- core/skills/db-design/references/postgres-patterns.md +340 -0
- core/skills/db-design/scripts/migration-safety.sh +150 -0
- core/skills/deployment-cicd/SKILL.md +260 -0
- core/skills/deployment-cicd/assets/deploy-checklist.md +26 -0
- core/skills/deployment-cicd/references/pipeline-and-release.md +54 -0
- core/skills/deployment-cicd/scripts/lint_workflow.py +79 -0
- core/skills/docker/SKILL.md +114 -0
- core/skills/docker/assets/dockerfile-checklist.md +31 -0
- core/skills/docker/references/compose-patterns.md +66 -0
- core/skills/docker/references/dockerfile-optimization.md +64 -0
- core/skills/docker/scripts/lint_dockerfile.sh +48 -0
- core/skills/docker/versions.json +16 -0
- core/skills/end-to-end-testing/SKILL.md +101 -0
- core/skills/end-to-end-testing/assets/e2e-checklist.md +23 -0
- core/skills/end-to-end-testing/references/maestro.md +63 -0
- core/skills/end-to-end-testing/references/playwright.md +68 -0
- core/skills/end-to-end-testing/scripts/lint_e2e.py +88 -0
- core/skills/end-to-end-testing/versions.json +16 -0
- core/skills/frontend-design/SKILL.md +76 -0
- core/skills/frontend-design/assets/design-checklist.md +29 -0
- core/skills/frontend-design/references/design-principles.md +65 -0
- core/skills/frontend-design/scripts/check_contrast.py +89 -0
- core/skills/frontend-fundamentals/SKILL.md +213 -0
- core/skills/frontend-fundamentals/assets/frontend-checklist.md +25 -0
- core/skills/frontend-fundamentals/references/rendering-and-state.md +66 -0
- core/skills/frontend-fundamentals/scripts/check_frontend.py +86 -0
- core/skills/graph-explorer/SKILL.md +215 -0
- core/skills/graph-explorer/scripts/explain-impact.sh +64 -0
- core/skills/graphql/SKILL.md +187 -0
- core/skills/grpc-microservices/SKILL.md +174 -0
- core/skills/hexagonal-architecture/SKILL.md +199 -0
- core/skills/hexagonal-architecture/assets/folder-scaffold.md +233 -0
- core/skills/hexagonal-architecture/references/anti-patterns.md +129 -0
- core/skills/hexagonal-architecture/references/go-fiber-layout.md +429 -0
- core/skills/hexagonal-architecture/references/python-fastapi-layout.md +453 -0
- core/skills/hexagonal-architecture/references/react-native-layout.md +428 -0
- core/skills/i18n/SKILL.md +126 -0
- core/skills/incident-response/SKILL.md +225 -0
- core/skills/incident-response/assets/incident-checklist.md +29 -0
- core/skills/incident-response/references/severity-and-runbook.md +53 -0
- core/skills/incident-response/scripts/classify_severity.py +86 -0
- core/skills/linux-sysadmin/SKILL.md +115 -0
- core/skills/linux-sysadmin/assets/hardening-checklist.md +29 -0
- core/skills/linux-sysadmin/references/ssh-hardening.md +62 -0
- core/skills/linux-sysadmin/references/systemd-and-services.md +77 -0
- core/skills/linux-sysadmin/scripts/triage.sh +50 -0
- core/skills/linux-sysadmin/versions.json +17 -0
- core/skills/llm-patterns/SKILL.md +410 -0
- core/skills/llm-patterns/assets/llm-feature-checklist.md +26 -0
- core/skills/llm-patterns/references/rag-and-evals.md +59 -0
- core/skills/llm-patterns/scripts/estimate_tokens.py +75 -0
- core/skills/messaging-queues/SKILL.md +142 -0
- core/skills/mobile-fundamentals/SKILL.md +406 -0
- core/skills/mobile-fundamentals/assets/mobile-launch-checklist.md +130 -0
- core/skills/mobile-fundamentals/references/navigation-and-deep-links.md +337 -0
- core/skills/mobile-fundamentals/references/offline-sync.md +339 -0
- core/skills/node-backend/SKILL.md +114 -0
- core/skills/node-backend/assets/node-checklist.md +25 -0
- core/skills/node-backend/references/async-and-errors.md +67 -0
- core/skills/node-backend/references/event-loop.md +65 -0
- core/skills/node-backend/scripts/check_package.py +78 -0
- core/skills/node-backend/versions.json +17 -0
- core/skills/observability/SKILL.md +289 -0
- core/skills/observability/assets/observability-checklist.md +27 -0
- core/skills/observability/references/instrumentation.md +57 -0
- core/skills/observability/scripts/lint_logging.py +77 -0
- core/skills/payments/SKILL.md +102 -0
- core/skills/performance/SKILL.md +305 -0
- core/skills/performance/assets/perf-checklist.md +143 -0
- core/skills/performance/references/mobile-performance.md +249 -0
- core/skills/performance/references/web-vitals.md +209 -0
- core/skills/php/SKILL.md +116 -0
- core/skills/php/assets/php-checklist.md +26 -0
- core/skills/php/references/modern-php.md +64 -0
- core/skills/php/references/security.md +72 -0
- core/skills/php/scripts/scan_php_smells.py +99 -0
- core/skills/php/versions.json +9 -0
- core/skills/pr-mode-driver/SKILL.md +65 -0
- core/skills/realtime-websockets/SKILL.md +152 -0
- core/skills/redis/SKILL.md +105 -0
- core/skills/redis/assets/redis-checklist.md +27 -0
- core/skills/redis/references/operations.md +66 -0
- core/skills/redis/references/patterns.md +62 -0
- core/skills/redis/scripts/analyze_info.py +101 -0
- core/skills/redis/versions.json +9 -0
- core/skills/search/SKILL.md +91 -0
- core/skills/search/references/grep.md +76 -0
- core/skills/search/scripts/verify-count.sh +73 -0
- core/skills/search-infra/SKILL.md +109 -0
- core/skills/security-mobile/SKILL.md +394 -0
- core/skills/security-mobile/assets/mobile-security-checklist.md +117 -0
- core/skills/security-mobile/references/masvs-l1-checklist.md +127 -0
- core/skills/security-web/SKILL.md +217 -0
- core/skills/security-web/assets/security-web-checklist.md +167 -0
- core/skills/security-web/references/owasp-top-10.md +551 -0
- core/skills/security-web/references/supply-chain.md +179 -0
- core/skills/security-web/scripts/csp-check.sh +153 -0
- core/skills/shell-scripting/SKILL.md +128 -0
- core/skills/shell-scripting/assets/script-checklist.md +33 -0
- core/skills/shell-scripting/references/argument-parsing.md +84 -0
- core/skills/shell-scripting/references/bash-robustness.md +78 -0
- core/skills/shell-scripting/scripts/lint_script.sh +53 -0
- core/skills/shell-scripting/scripts/new_script.py +131 -0
- core/skills/shell-scripting/versions.json +23 -0
- core/skills/sql-authoring/SKILL.md +104 -0
- core/skills/sql-authoring/assets/query-review-checklist.md +26 -0
- core/skills/sql-authoring/references/query-patterns.md +89 -0
- core/skills/sql-authoring/references/reading-explain.md +52 -0
- core/skills/sql-authoring/scripts/analyze_plan.py +100 -0
- core/skills/sql-authoring/versions.json +17 -0
- core/skills/state-management/SKILL.md +428 -0
- core/skills/state-management/references/tanstack-query-recipes.md +301 -0
- core/skills/state-management/references/zustand-recipes.md +364 -0
- core/skills/supabase/SKILL.md +108 -0
- core/skills/supabase/assets/supabase-checklist.md +26 -0
- core/skills/supabase/references/realtime-and-storage.md +55 -0
- core/skills/supabase/references/rls-and-auth.md +65 -0
- core/skills/supabase/scripts/check_rls.py +88 -0
- core/skills/supabase/versions.json +9 -0
- core/skills/task-driver/SKILL.md +272 -0
- core/skills/task-driver/scripts/task-lint.sh +163 -0
- core/skills/technical-writing/SKILL.md +85 -0
- core/skills/technical-writing/assets/doc-checklist.md +29 -0
- core/skills/technical-writing/references/doc-anatomy.md +53 -0
- core/skills/technical-writing/references/writing-craft.md +59 -0
- core/skills/technical-writing/scripts/new_doc.py +81 -0
- core/skills/terraform-k8s/SKILL.md +133 -0
- core/skills/testing-strategy/SKILL.md +266 -0
- core/skills/testing-strategy/assets/test-review-checklist.md +25 -0
- core/skills/testing-strategy/references/test-types.md +52 -0
- core/skills/testing-strategy/scripts/coverage_gate.py +79 -0
- core/skills/thinking_os/SKILL.md +288 -0
- core/skills/thinking_os/scripts/classify.sh +122 -0
- core/skills/typescript/SKILL.md +110 -0
- core/skills/typescript/assets/typescript-checklist.md +24 -0
- core/skills/typescript/references/strictness.md +53 -0
- core/skills/typescript/references/type-system.md +86 -0
- core/skills/typescript/scripts/check_tsconfig.py +92 -0
- core/skills/typescript/versions.json +9 -0
- core/subsystems.yaml +202 -0
- core/thinking_os/__init__.py +1 -0
- core/thinking_os/_agent_markers.py +32 -0
- core/thinking_os/agents/README.md +71 -0
- core/thinking_os/agents/analyst.md +139 -0
- core/thinking_os/agents/architect.md +127 -0
- core/thinking_os/agents/debugger.md +111 -0
- core/thinking_os/agents/deployer.md +112 -0
- core/thinking_os/agents/distiller.md +28 -0
- core/thinking_os/agents/documenter.md +101 -0
- core/thinking_os/agents/implementer.md +135 -0
- core/thinking_os/agents/internal/session_observer.md +39 -0
- core/thinking_os/agents/observer.md +100 -0
- core/thinking_os/agents/onboarder.md +81 -0
- core/thinking_os/agents/refactorer.md +123 -0
- core/thinking_os/agents/repairer.md +47 -0
- core/thinking_os/agents/researcher.md +129 -0
- core/thinking_os/agents/reviewer.md +147 -0
- core/thinking_os/agents/security_auditor.md +133 -0
- core/thinking_os/background.py +405 -0
- core/thinking_os/bootstrap_outcomes.py +200 -0
- core/thinking_os/budget.py +302 -0
- core/thinking_os/capture.py +495 -0
- core/thinking_os/cognition.py +516 -0
- core/thinking_os/cognition_schemas.py +517 -0
- core/thinking_os/compress.py +192 -0
- core/thinking_os/concepts.py +233 -0
- core/thinking_os/dashboard.py +159 -0
- core/thinking_os/database.py +2883 -0
- core/thinking_os/decay.py +393 -0
- core/thinking_os/digest.py +295 -0
- core/thinking_os/dispatcher.py +192 -0
- core/thinking_os/dispatcher_helpers.py +48 -0
- core/thinking_os/dispatchers/__init__.py +3 -0
- core/thinking_os/dispatchers/default.py +47 -0
- core/thinking_os/distill.py +192 -0
- core/thinking_os/doc_indexer.py +905 -0
- core/thinking_os/embeddings.py +943 -0
- core/thinking_os/formula_composer.py +556 -0
- core/thinking_os/gate_marker.py +75 -0
- core/thinking_os/graph.py +296 -0
- core/thinking_os/graph_indexer.py +360 -0
- core/thinking_os/health_check.py +517 -0
- core/thinking_os/impact.py +119 -0
- core/thinking_os/memory_gc.py +356 -0
- core/thinking_os/migrator_embeddings.py +318 -0
- core/thinking_os/precision.py +194 -0
- core/thinking_os/presets/registry.yaml +127 -0
- core/thinking_os/record_outcome.py +399 -0
- core/thinking_os/repair.py +105 -0
- core/thinking_os/retrieval_quality.py +239 -0
- core/thinking_os/roles/analyst.yaml +83 -0
- core/thinking_os/roles/architect.yaml +88 -0
- core/thinking_os/roles/debugger.yaml +71 -0
- core/thinking_os/roles/deployer.yaml +71 -0
- core/thinking_os/roles/documenter.yaml +72 -0
- core/thinking_os/roles/implementer.yaml +83 -0
- core/thinking_os/roles/observer.yaml +70 -0
- core/thinking_os/roles/refactorer.yaml +71 -0
- core/thinking_os/roles/researcher.yaml +72 -0
- core/thinking_os/roles/reviewer.yaml +79 -0
- core/thinking_os/roles/security_auditor.yaml +83 -0
- core/thinking_os/roles_state.py +168 -0
- core/thinking_os/sanitizer.py +320 -0
- core/thinking_os/server.py +3160 -0
- core/thinking_os/session_enrich.py +272 -0
- core/thinking_os/session_observe_worker.py +111 -0
- core/thinking_os/session_startup.py +74 -0
- core/thinking_os/session_summary.py +245 -0
- core/thinking_os/situations/registry.yaml +99 -0
- core/thinking_os/task_analyzer.py +462 -0
- core/thinking_os/task_parser.py +342 -0
- core/thinking_os/task_sync.py +73 -0
- core/thinking_os/tools/__init__.py +6 -0
- core/thinking_os/tools/_shared.py +947 -0
- core/thinking_os/tools/cognition.py +1867 -0
- core/thinking_os/tools/docs.py +770 -0
- core/thinking_os/tools/learning.py +2078 -0
- core/thinking_os/tools/logs.py +79 -0
- core/thinking_os/tools/memory.py +840 -0
- core/thinking_os/tools/metrics.py +200 -0
- core/thinking_os/tools/retrieve.py +415 -0
- core/thinking_os/tools/routing.py +658 -0
- core/thinking_os/tools/tasks.py +449 -0
- core/thinking_os/tools/trajectory.py +181 -0
- core/thinking_os/tracing.py +235 -0
- core/web/__init__.py +5 -0
- core/web/_cache.py +118 -0
- core/web/_deps.py +56 -0
- core/web/_envelope.py +85 -0
- core/web/_project_context.py +140 -0
- core/web/chat_providers.py +108 -0
- core/web/init_jobs.py +216 -0
- core/web/routes/__init__.py +25 -0
- core/web/routes/_bounded_read.py +76 -0
- core/web/routes/board.py +1089 -0
- core/web/routes/cognition.py +1838 -0
- core/web/routes/config.py +635 -0
- core/web/routes/graph.py +513 -0
- core/web/routes/health.py +180 -0
- core/web/routes/hooks.py +288 -0
- core/web/routes/hub.py +1219 -0
- core/web/routes/logs.py +374 -0
- core/web/routes/metrics.py +43 -0
- core/web/routes/observability.py +400 -0
- core/web/routes/patterns.py +227 -0
- core/web/routes/presence.py +609 -0
- core/web/routes/roles.py +446 -0
- core/web/routes/scheduled.py +261 -0
- core/web/routes/search.py +238 -0
- core/web/routes/sessions.py +220 -0
- core/web/routes/settings.py +363 -0
- core/web/routes/stream.py +547 -0
- core/web/security.py +157 -0
- core/web/server.py +283 -0
- graph_os/__init__.py +29 -0
- graph_os/backend.py +233 -0
- graph_os/backends/__init__.py +13 -0
- graph_os/backends/sqlite_backend.py +1053 -0
- graph_os/communities.py +410 -0
- graph_os/enterprise.py +218 -0
- graph_os/entry_points.py +226 -0
- graph_os/extractors/__init__.py +25 -0
- graph_os/extractors/code_generic.py +914 -0
- graph_os/extractors/code_go.py +1422 -0
- graph_os/extractors/code_json.py +340 -0
- graph_os/extractors/code_php.py +979 -0
- graph_os/extractors/code_python.py +1454 -0
- graph_os/extractors/code_shell.py +538 -0
- graph_os/extractors/code_toml.py +302 -0
- graph_os/extractors/code_ts.py +1665 -0
- graph_os/extractors/code_yaml.py +394 -0
- graph_os/extractors/contracts.py +1592 -0
- graph_os/extractors/md_links.py +890 -0
- graph_os/extractors/task_deps.py +345 -0
- graph_os/groups/__init__.py +22 -0
- graph_os/groups/cross_repo.py +156 -0
- graph_os/groups/manifest.py +141 -0
- graph_os/ingest/__init__.py +19 -0
- graph_os/ingest/base.py +306 -0
- graph_os/ingest/github.py +112 -0
- graph_os/ingest/zip.py +95 -0
- graph_os/toolchain.py +393 -0
- graph_os/tools/__init__.py +9 -0
- graph_os/tools/graph.py +5573 -0
- graph_os/tools/reindex_dispatch.py +730 -0
- graph_os/tree_sitter_overlay.py +235 -0
- graph_os/types.py +252 -0
- graph_os/vec_index.py +277 -0
- graph_os/viewer/__init__.py +12 -0
- graph_os/viewer/exporter.py +93 -0
- graph_os/viewer/template.py +189 -0
- scheduled/__init__.py +0 -0
- scheduled/_activity.py +126 -0
- scheduled/_state.py +113 -0
- scheduled/config.py +86 -0
- scheduled/dep_reconcile.py +135 -0
- scheduled/error_sweep.py +137 -0
- scheduled/nightly.py +930 -0
- scheduled/responsive_extract.py +65 -0
- scripts/__init__.py +4 -0
- scripts/_commit_msg_body.sh +31 -0
- scripts/_post_commit_body.sh +49 -0
- scripts/_pre_commit_body.sh +121 -0
- scripts/_prepare_commit_msg_body.sh +53 -0
- scripts/audit_mcp_tools.py +693 -0
- scripts/bench_sdk_dispatcher.py +177 -0
- scripts/capture_golden.py +169 -0
- scripts/check_graph_phantoms.py +75 -0
- scripts/dev/audit_doc_links.py +359 -0
- scripts/dev/audit_scaffold_module_tags.py +107 -0
- scripts/dev/backfill_doc_headers.py +328 -0
- scripts/dev/backfill_nav_lines.py +119 -0
- scripts/dev/fix_nav_placement.py +106 -0
- scripts/dev/inspect_sdk_options.py +45 -0
- scripts/dev/migrate_check_ids.py +170 -0
- scripts/dev/strip_purpose_blocks.py +154 -0
- scripts/dump_openapi.py +66 -0
- scripts/e2e_dispatch_tool.py +195 -0
- scripts/generate_manifest.py +166 -0
- scripts/golden_sections.py +20 -0
- scripts/graph_demo.py +161 -0
- scripts/install-git-hooks.sh +47 -0
- scripts/migrate_embeddings_minilm_to_bge_m3.py +84 -0
- scripts/operational_eval.py +445 -0
- scripts/probe_agent_session_resolver.py +59 -0
- scripts/prune_deleted_path.py +127 -0
- scripts/refactor_agent_dual_mode.py +171 -0
- scripts/refresh_skill_versions.py +302 -0
- scripts/regen_doc_index.py +209 -0
- scripts/regen_doctor_schema.py +62 -0
- scripts/regen_rules.py +94 -0
- scripts/rename_formulas_to_semantic.py +241 -0
- scripts/smoke_db_connections.py +183 -0
- scripts/smoke_doc_header.py +72 -0
- scripts/smoke_graph_e2e.py +374 -0
- scripts/smoke_sdk_dispatch.py +84 -0
- scripts/smoke_uid_resolver.py +164 -0
- scripts/verify_dispatchers.py +244 -0
- scripts/verify_phase_c_e2e.py +436 -0
- templates/__init__.py +6 -0
- templates/_base/Makefile.base +353 -0
- templates/_base/base.yaml +59 -0
- templates/_base/coding-os.yaml.template +39 -0
- templates/_base/dimension-registry.template.md +68 -0
- templates/_base/domain-config.template.json +46 -0
- templates/_base/fragments/anatomy-map.md.tmpl +11 -0
- templates/_base/fragments/context-discipline.md.tmpl +3 -0
- templates/_base/fragments/core-loop.md.tmpl +52 -0
- templates/_base/fragments/engineering-routing.md.tmpl +3 -0
- templates/_base/fragments/header.md.tmpl +6 -0
- templates/_base/fragments/identity.md.tmpl +3 -0
- templates/_base/fragments/principles.md.tmpl +3 -0
- templates/_base/fragments/retrieval-routing.md.tmpl +23 -0
- templates/_base/fragments/session-handoff.md.tmpl +3 -0
- templates/_base/fragments/skills.md.tmpl +3 -0
- templates/_base/fragments/ssot-map.md.tmpl +3 -0
- templates/_base/fragments/stop-conditions.md.tmpl +3 -0
- templates/_base/fragments/subagent-dispatch.md.tmpl +3 -0
- templates/_base/fragments/task-authoring.md.tmpl +69 -0
- templates/_base/fragments/task-logging.md.tmpl +8 -0
- templates/_base/fragments/tool-routing.md.tmpl +9 -0
- templates/_base/fragments/verification-matrix.md.tmpl +12 -0
- templates/_base/lang/dart/analysis_options.yaml +7 -0
- templates/_base/lang/php/phpcs.xml.dist +10 -0
- templates/_base/lang/python/pyproject.toml +19 -0
- templates/_base/lang/rust/clippy.toml +5 -0
- templates/_base/lang/rust/rustfmt.toml +3 -0
- templates/_base/lang/typescript/eslint.config.js +26 -0
- templates/_base/lang/typescript/tsconfig.json +15 -0
- templates/_base/lang/typescript/vitest.config.ts +10 -0
- templates/_base/scaffold/changes.log +1 -0
- templates/_base/scaffold/docs/00-index.md +55 -0
- templates/_base/scaffold/docs/_meta/feature-dependency-tree.md +30 -0
- templates/_base/scaffold/docs/_meta/foundation-map.md +56 -0
- templates/_base/scaffold/docs/_meta/questions.md +8 -0
- templates/_base/scaffold/docs/_meta/roadmap.md +33 -0
- templates/_base/scaffold/docs/api-contracts/00-index.md +58 -0
- templates/_base/scaffold/docs/api-contracts/error-format.md +58 -0
- templates/_base/scaffold/docs/architecture/00-index.md +42 -0
- templates/_base/scaffold/docs/architecture/adr/00-index.md +39 -0
- templates/_base/scaffold/docs/engineering/00-index.md +9 -0
- templates/_base/scaffold/docs/governance/00-index.md +55 -0
- templates/_base/scaffold/docs/governance/_templates/doc-cheat-sheet.md +202 -0
- templates/_base/scaffold/docs/governance/_templates/playbook-template.md +81 -0
- templates/_base/scaffold/docs/governance/_templates/post-mortem-template.md +85 -0
- templates/_base/scaffold/docs/governance/_templates/runbook-template.md +88 -0
- templates/_base/scaffold/docs/governance/_templates/security-review-template.md +111 -0
- templates/_base/scaffold/docs/governance/_templates/task-detail.md +61 -0
- templates/_base/scaffold/docs/governance/agent-workflow.md +101 -0
- templates/_base/scaffold/docs/governance/anatomy-contract.md +150 -0
- templates/_base/scaffold/docs/governance/critical-rules.md +224 -0
- templates/_base/scaffold/docs/governance/decision-records.md +58 -0
- templates/_base/scaffold/docs/governance/docs-first-protocol.md +157 -0
- templates/_base/scaffold/docs/governance/docs-system.md +151 -0
- templates/_base/scaffold/docs/governance/gdpr-compliance.md +66 -0
- templates/_base/scaffold/docs/governance/mcp-tool-inventory.md +112 -0
- templates/_base/scaffold/docs/governance/risk-register.md +26 -0
- templates/_base/scaffold/docs/governance/scaffold-boundary-contract.md +161 -0
- templates/_base/scaffold/docs/governance/task-lifecycle.md +125 -0
- templates/_base/scaffold/docs/governance/wrapper-derivation.md +50 -0
- templates/_base/scaffold/docs/insights/00-index.md +17 -0
- templates/_base/scaffold/docs/ops/00-index.md +59 -0
- templates/_base/scaffold/docs/ops/runbooks/00-index.md +9 -0
- templates/_base/scaffold/docs/playbooks/00-index.md +12 -0
- templates/_base/scaffold/docs/playbooks/research-validation.md +29 -0
- templates/_base/scaffold/docs/playbooks/security-review.md +41 -0
- templates/_base/scaffold/docs/prd/00-index.md +43 -0
- templates/_base/scaffold/docs/prd/01-snapshot-vision.md +56 -0
- templates/_base/scaffold/docs/workflow/workflow-guide.md +138 -0
- templates/_base/scaffold/src/shared/README.md +23 -0
- templates/_base/skill-enforcement.template.md +14 -0
- templates/_base/task-detail.template.md +61 -0
- templates/_presets/ai-saas.yaml +9 -0
- templates/_presets/django-next.yaml +8 -0
- templates/_presets/dotnet-react.yaml +8 -0
- templates/_presets/flutter-baas.yaml +8 -0
- templates/_presets/go-react.yaml +8 -0
- templates/_presets/hexagonal-product.yaml +16 -0
- templates/_presets/jamstack.yaml +8 -0
- templates/_presets/laravel-vue.yaml +8 -0
- templates/_presets/mean.yaml +8 -0
- templates/_presets/mern.yaml +9 -0
- templates/_presets/nest-angular.yaml +8 -0
- templates/_presets/nextjs-fastapi.yaml +10 -0
- templates/_presets/nuxt-fullstack.yaml +9 -0
- templates/_presets/pern.yaml +9 -0
- templates/_presets/rails-react.yaml +8 -0
- templates/_presets/rn-api.yaml +8 -0
- templates/_presets/rust-svelte.yaml +8 -0
- templates/_presets/spring-react.yaml +8 -0
- templates/_presets/t3-style.yaml +9 -0
- templates/_presets/tall.yaml +8 -0
- templates/_presets/wordpress-cms.yaml +8 -0
- templates/angular/rules/frontend.md +19 -0
- templates/angular/scaffold/docs/engineering/accessibility.md +46 -0
- templates/angular/scaffold/docs/engineering/angular-rules.md +35 -0
- templates/angular/scaffold/docs/playbooks/angular-app.md +42 -0
- templates/angular/scaffold/src/frontend/angular.json +52 -0
- templates/angular/scaffold/src/frontend/package.json +28 -0
- templates/angular/scaffold/src/frontend/src/app/app.component.ts +19 -0
- templates/angular/scaffold/src/frontend/src/app/app.config.ts +22 -0
- templates/angular/scaffold/src/frontend/src/app/app.routes.ts +8 -0
- templates/angular/scaffold/src/frontend/src/app/core/global-error-handler.ts +12 -0
- templates/angular/scaffold/src/frontend/src/app/health/health.component.ts +14 -0
- templates/angular/scaffold/src/frontend/src/app/health/health.service.spec.ts +16 -0
- templates/angular/scaffold/src/frontend/src/app/health/health.service.ts +10 -0
- templates/angular/scaffold/src/frontend/src/index.html +11 -0
- templates/angular/scaffold/src/frontend/src/main.ts +9 -0
- templates/angular/scaffold/src/frontend/src/styles.css +14 -0
- templates/angular/scaffold/src/frontend/tsconfig.app.json +8 -0
- templates/angular/scaffold/src/frontend/tsconfig.json +27 -0
- templates/angular/scaffold/src/frontend/tsconfig.spec.json +8 -0
- templates/angular/scaffold-boundary.yaml +27 -0
- templates/angular/skills/angular/SKILL.md +79 -0
- templates/angular/skills/angular/references/anatomy.md +69 -0
- templates/angular/stack.yaml +75 -0
- templates/aspnet-core/rules/backend.md +20 -0
- templates/aspnet-core/scaffold/docs/engineering/aspnet-core-rules.md +36 -0
- templates/aspnet-core/scaffold/docs/playbooks/aspnet-core-service.md +40 -0
- templates/aspnet-core/scaffold/src/backend/Backend.csproj +11 -0
- templates/aspnet-core/scaffold/src/backend/Backend.sln +27 -0
- templates/aspnet-core/scaffold/src/backend/Common/ExceptionHandlingMiddleware.cs +35 -0
- templates/aspnet-core/scaffold/src/backend/Features/Health/HealthEndpoints.cs +10 -0
- templates/aspnet-core/scaffold/src/backend/Features/Health/HealthService.cs +9 -0
- templates/aspnet-core/scaffold/src/backend/Program.cs +22 -0
- templates/aspnet-core/scaffold/src/backend/tests/Backend.Tests/Backend.Tests.csproj +22 -0
- templates/aspnet-core/scaffold/src/backend/tests/Backend.Tests/HealthServiceTests.cs +15 -0
- templates/aspnet-core/scaffold-boundary.yaml +24 -0
- templates/aspnet-core/skills/aspnet-core/SKILL.md +80 -0
- templates/aspnet-core/skills/aspnet-core/references/anatomy.md +65 -0
- templates/aspnet-core/stack.yaml +68 -0
- templates/astro/rules/frontend.md +20 -0
- templates/astro/scaffold/docs/engineering/astro-rules.md +40 -0
- templates/astro/scaffold/docs/playbooks/astro-app.md +57 -0
- templates/astro/scaffold/docs/playbooks/content-seo.md +37 -0
- templates/astro/scaffold/src/frontend/astro.config.mjs +10 -0
- templates/astro/scaffold/src/frontend/package.json +23 -0
- templates/astro/scaffold/src/frontend/src/components/Greeting.astro +13 -0
- templates/astro/scaffold/src/frontend/src/content/posts/hello.md +10 -0
- templates/astro/scaffold/src/frontend/src/content.config.ts +19 -0
- templates/astro/scaffold/src/frontend/src/lib/problem.test.ts +39 -0
- templates/astro/scaffold/src/frontend/src/lib/problem.ts +30 -0
- templates/astro/scaffold/src/frontend/src/pages/api/health.ts +13 -0
- templates/astro/scaffold/src/frontend/src/pages/index.astro +21 -0
- templates/astro/scaffold/src/frontend/tsconfig.json +9 -0
- templates/astro/scaffold/src/frontend/vitest.config.ts +10 -0
- templates/astro/scaffold-boundary.yaml +28 -0
- templates/astro/skills/astro/SKILL.md +71 -0
- templates/astro/skills/astro/references/anatomy.md +66 -0
- templates/astro/stack.yaml +75 -0
- templates/csharp-plain/scaffold/src/backend/Backend.csproj +12 -0
- templates/csharp-plain/scaffold/src/backend/Program.cs +1 -0
- templates/csharp-plain/scaffold-boundary.yaml +23 -0
- templates/csharp-plain/stack.yaml +50 -0
- templates/django/rules/backend.md +18 -0
- templates/django/scaffold/docs/engineering/anti-ambiguity.md +74 -0
- templates/django/scaffold/docs/engineering/backend-rules.md +133 -0
- templates/django/scaffold/docs/engineering/glossary.md +51 -0
- templates/django/scaffold/docs/engineering/logging-standards.md +107 -0
- templates/django/scaffold/docs/engineering/naming-conventions.md +68 -0
- templates/django/scaffold/docs/engineering/secrets-rotation-runbook.md +142 -0
- templates/django/scaffold/docs/playbooks/backend-api.md +119 -0
- templates/django/scaffold/src/backend/config/__init__.py +0 -0
- templates/django/scaffold/src/backend/config/settings.py +31 -0
- templates/django/scaffold/src/backend/config/urls.py +11 -0
- templates/django/scaffold/src/backend/config/wsgi.py +6 -0
- templates/django/scaffold/src/backend/manage.py +14 -0
- templates/django/scaffold/src/backend/pyproject.toml +37 -0
- templates/django/scaffold/src/backend/tests/test_health.py +4 -0
- templates/django/scaffold-boundary.yaml +25 -0
- templates/django/skills/python-django/SKILL.md +450 -0
- templates/django/skills/python-django/references/anatomy.md +117 -0
- templates/django/skills/python-django/scripts/new_endpoint.py +89 -0
- templates/django/stack.yaml +73 -0
- templates/fastapi/rules/backend.md +18 -0
- templates/fastapi/scaffold/docs/engineering/fastapi-rules.md +37 -0
- templates/fastapi/scaffold/docs/playbooks/fastapi-service.md +30 -0
- templates/fastapi/scaffold/src/backend/app/__init__.py +0 -0
- templates/fastapi/scaffold/src/backend/app/main.py +8 -0
- templates/fastapi/scaffold/src/backend/pyproject.toml +39 -0
- templates/fastapi/scaffold/src/backend/tests/test_health.py +11 -0
- templates/fastapi/scaffold-boundary.yaml +25 -0
- templates/fastapi/skills/python-fastapi/SKILL.md +75 -0
- templates/fastapi/skills/python-fastapi/references/anatomy.md +117 -0
- templates/fastapi/skills/python-fastapi/scripts/new_endpoint.py +101 -0
- templates/fastapi/stack.yaml +57 -0
- templates/flutter/rules/mobile.md +26 -0
- templates/flutter/scaffold/docs/engineering/flutter-rules.md +35 -0
- templates/flutter/scaffold/docs/playbooks/flutter-app.md +45 -0
- templates/flutter/scaffold/src/mobile/lib/core/error_mapper.dart +17 -0
- templates/flutter/scaffold/src/mobile/lib/core/router.dart +13 -0
- templates/flutter/scaffold/src/mobile/lib/main.dart +22 -0
- templates/flutter/scaffold/src/mobile/lib/screens/health_screen.dart +32 -0
- templates/flutter/scaffold/src/mobile/lib/services/health_service.dart +11 -0
- templates/flutter/scaffold/src/mobile/lib/state/health_provider.dart +13 -0
- templates/flutter/scaffold/src/mobile/pubspec.yaml +22 -0
- templates/flutter/scaffold/src/mobile/test/health_provider_test.dart +90 -0
- templates/flutter/scaffold-boundary.yaml +28 -0
- templates/flutter/skills/flutter/SKILL.md +76 -0
- templates/flutter/skills/flutter/references/anatomy.md +64 -0
- templates/flutter/stack.yaml +70 -0
- templates/go/rules/backend.md +19 -0
- templates/go/scaffold/docs/engineering/go-rules.md +45 -0
- templates/go/scaffold/docs/playbooks/go-service.md +30 -0
- templates/go/scaffold/src/backend/cmd/api/main.go +22 -0
- templates/go/scaffold/src/backend/cmd/api/main_test.go +20 -0
- templates/go/scaffold/src/backend/go.mod +3 -0
- templates/go/scaffold-boundary.yaml +25 -0
- templates/go/skills/go-patterns/SKILL.md +68 -0
- templates/go/skills/go-patterns/assets/go-checklist.md +29 -0
- templates/go/skills/go-patterns/references/anatomy.md +115 -0
- templates/go/skills/go-patterns/references/go-2026-idioms.md +92 -0
- templates/go/skills/go-patterns/scripts/new_endpoint.py +117 -0
- templates/go/skills/go-patterns/versions.json +16 -0
- templates/go/stack.yaml +54 -0
- templates/go-fiber/rules/backend.md +20 -0
- templates/go-fiber/scaffold/docs/engineering/fiber-rules.md +97 -0
- templates/go-fiber/scaffold/docs/playbooks/fiber-service.md +149 -0
- templates/go-fiber/scaffold/src/backend/cmd/api/main.go +21 -0
- templates/go-fiber/scaffold/src/backend/cmd/api/main_test.go +17 -0
- templates/go-fiber/scaffold/src/backend/go.mod +23 -0
- templates/go-fiber/scaffold/src/backend/go.sum +49 -0
- templates/go-fiber/scaffold-boundary.yaml +26 -0
- templates/go-fiber/skills/go-fiber/SKILL.md +203 -0
- templates/go-fiber/skills/go-fiber/assets/fiber-checklist.md +26 -0
- templates/go-fiber/skills/go-fiber/references/anatomy.md +116 -0
- templates/go-fiber/skills/go-fiber/references/fiber-v3-patterns.md +89 -0
- templates/go-fiber/skills/go-fiber/scripts/new_endpoint.py +107 -0
- templates/go-fiber/skills/go-fiber/versions.json +16 -0
- templates/go-fiber/stack.yaml +59 -0
- templates/go-plain/scaffold/src/backend/go.mod +3 -0
- templates/go-plain/scaffold/src/backend/main.go +7 -0
- templates/go-plain/scaffold-boundary.yaml +22 -0
- templates/go-plain/stack.yaml +51 -0
- templates/java-plain/scaffold/src/backend/mvnw +302 -0
- templates/java-plain/scaffold/src/backend/pom.xml +41 -0
- templates/java-plain/scaffold/src/backend/src/main/java/com/example/app/Main.java +10 -0
- templates/java-plain/scaffold-boundary.yaml +23 -0
- templates/java-plain/stack.yaml +51 -0
- templates/laravel/rules/backend.md +20 -0
- templates/laravel/scaffold/docs/engineering/laravel-rules.md +28 -0
- templates/laravel/scaffold/docs/playbooks/laravel-service.md +28 -0
- templates/laravel/scaffold/src/backend/app/Exceptions/Handler.php +27 -0
- templates/laravel/scaffold/src/backend/app/Http/Controllers/HealthController.php +15 -0
- templates/laravel/scaffold/src/backend/app/Support/HealthStatus.php +14 -0
- templates/laravel/scaffold/src/backend/composer.json +24 -0
- templates/laravel/scaffold/src/backend/phpunit.xml +10 -0
- templates/laravel/scaffold/src/backend/public/index.php +8 -0
- templates/laravel/scaffold/src/backend/routes/api.php +7 -0
- templates/laravel/scaffold/src/backend/tests/Unit/HealthStatusTest.php +16 -0
- templates/laravel/scaffold-boundary.yaml +23 -0
- templates/laravel/skills/laravel/SKILL.md +56 -0
- templates/laravel/skills/laravel/references/anatomy.md +65 -0
- templates/laravel/stack.yaml +66 -0
- templates/meta/rules/graph-first.md +27 -0
- templates/meta/rules/hook-author.md +19 -0
- templates/meta/rules/mcp-tool-author.md +18 -0
- templates/meta/rules/meta-engineering.md +17 -0
- templates/meta/scaffold-boundary.yaml +55 -0
- templates/meta/skills/claude-sdk-integration/SKILL.md +163 -0
- templates/meta/skills/claude-sdk-integration/assets/sdk-checklist.md +27 -0
- templates/meta/skills/claude-sdk-integration/scripts/check_model_ids.py +97 -0
- templates/meta/skills/graph-os-authoring/SKILL.md +278 -0
- templates/meta/skills/graph-os-authoring/assets/graph-os-checklist.md +25 -0
- templates/meta/skills/graph-os-authoring/scripts/new_extractor.py +76 -0
- templates/meta/skills/hook-authoring/SKILL.md +292 -0
- templates/meta/skills/hook-authoring/assets/hook-checklist.md +30 -0
- templates/meta/skills/hook-authoring/scripts/new_hook.sh +75 -0
- templates/meta/skills/mcp-tool-authoring/SKILL.md +301 -0
- templates/meta/skills/mcp-tool-authoring/assets/mcp-tool-checklist.md +29 -0
- templates/meta/skills/mcp-tool-authoring/scripts/new_tool.py +74 -0
- templates/meta/skills/meta-engineering/SKILL.md +151 -0
- templates/meta/skills/meta-engineering/assets/meta-edit-checklist.md +28 -0
- templates/meta/skills/meta-engineering/scripts/which_layer.py +61 -0
- templates/meta/skills/python-meta-server/SKILL.md +162 -0
- templates/meta/skills/python-meta-server/assets/meta-server-checklist.md +28 -0
- templates/meta/skills/python-meta-server/scripts/check_envelope.py +91 -0
- templates/meta/skills/react-vite-hub/SKILL.md +140 -0
- templates/meta/skills/react-vite-hub/assets/hub-ui-checklist.md +23 -0
- templates/meta/skills/react-vite-hub/scripts/check_vite_env.py +73 -0
- templates/meta/stack.yaml +119 -0
- templates/nestjs/rules/backend.md +20 -0
- templates/nestjs/scaffold/docs/engineering/nestjs-rules.md +33 -0
- templates/nestjs/scaffold/docs/playbooks/nestjs-service.md +39 -0
- templates/nestjs/scaffold/src/backend/nest-cli.json +5 -0
- templates/nestjs/scaffold/src/backend/package.json +28 -0
- templates/nestjs/scaffold/src/backend/src/app.module.ts +9 -0
- templates/nestjs/scaffold/src/backend/src/common/all-exceptions.filter.ts +59 -0
- templates/nestjs/scaffold/src/backend/src/health/health.controller.ts +14 -0
- templates/nestjs/scaffold/src/backend/src/health/health.module.ts +10 -0
- templates/nestjs/scaffold/src/backend/src/health/health.service.spec.ts +21 -0
- templates/nestjs/scaffold/src/backend/src/health/health.service.ts +9 -0
- templates/nestjs/scaffold/src/backend/src/main.ts +26 -0
- templates/nestjs/scaffold/src/backend/tsconfig.json +16 -0
- templates/nestjs/scaffold/src/backend/vitest.config.ts +9 -0
- templates/nestjs/scaffold-boundary.yaml +25 -0
- templates/nestjs/skills/nestjs/SKILL.md +67 -0
- templates/nestjs/skills/nestjs/references/anatomy.md +65 -0
- templates/nestjs/stack.yaml +68 -0
- templates/nextjs/rules/frontend.md +18 -0
- templates/nextjs/scaffold/docs/design/00-index.md +23 -0
- templates/nextjs/scaffold/docs/design/colors-tokens.md +141 -0
- templates/nextjs/scaffold/docs/design/components-patterns.md +159 -0
- templates/nextjs/scaffold/docs/design/motion-accessibility.md +137 -0
- templates/nextjs/scaffold/docs/design/typography-spacing.md +107 -0
- templates/nextjs/scaffold/docs/engineering/accessibility-web.md +56 -0
- templates/nextjs/scaffold/docs/engineering/copywriting-standard.md +102 -0
- templates/nextjs/scaffold/docs/engineering/formatting-rules.md +89 -0
- templates/nextjs/scaffold/docs/engineering/frontend-rendering-rules.md +80 -0
- templates/nextjs/scaffold/docs/engineering/frontend-rules.md +183 -0
- templates/nextjs/scaffold/docs/engineering/i18n-policy.md +99 -0
- templates/nextjs/scaffold/docs/pages-content-spec/00-index.md +78 -0
- templates/nextjs/scaffold/docs/playbooks/content-seo.md +55 -0
- templates/nextjs/scaffold/docs/playbooks/docs-governance.md +51 -0
- templates/nextjs/scaffold/docs/playbooks/frontend-ui.md +63 -0
- templates/nextjs/scaffold/src/frontend/app/layout.tsx +14 -0
- templates/nextjs/scaffold/src/frontend/app/page.tsx +3 -0
- templates/nextjs/scaffold/src/frontend/eslint.config.js +17 -0
- templates/nextjs/scaffold/src/frontend/lib/greeting.test.ts +9 -0
- templates/nextjs/scaffold/src/frontend/lib/greeting.ts +3 -0
- templates/nextjs/scaffold/src/frontend/package.json +28 -0
- templates/nextjs/scaffold/src/frontend/tsconfig.json +18 -0
- templates/nextjs/scaffold/src/frontend/vitest.config.ts +10 -0
- templates/nextjs/scaffold-boundary.yaml +30 -0
- templates/nextjs/skills/nextjs-react/SKILL.md +485 -0
- templates/nextjs/skills/nextjs-react/references/anatomy.md +116 -0
- templates/nextjs/skills/nextjs-react/scripts/new_component.py +72 -0
- templates/nextjs/stack.yaml +81 -0
- templates/node-express/rules/backend.md +20 -0
- templates/node-express/scaffold/docs/engineering/express-rules.md +30 -0
- templates/node-express/scaffold/docs/playbooks/express-service.md +35 -0
- templates/node-express/scaffold/src/backend/package.json +24 -0
- templates/node-express/scaffold/src/backend/src/index.ts +17 -0
- templates/node-express/scaffold/src/backend/src/middleware/error-handler.ts +12 -0
- templates/node-express/scaffold/src/backend/src/routes/health.test.ts +33 -0
- templates/node-express/scaffold/src/backend/src/routes/health.ts +7 -0
- templates/node-express/scaffold/src/backend/tsconfig.json +15 -0
- templates/node-express/scaffold/src/backend/types/express-bootstrap.d.ts +21 -0
- templates/node-express/scaffold-boundary.yaml +25 -0
- templates/node-express/skills/node-express/SKILL.md +70 -0
- templates/node-express/skills/node-express/references/anatomy.md +63 -0
- templates/node-express/stack.yaml +63 -0
- templates/python/scaffold/docs/engineering/python-rules.md +27 -0
- templates/python/scaffold/docs/playbooks/python-library.md +35 -0
- templates/python/stack.yaml +60 -0
- templates/rails/rules/backend.md +10 -0
- templates/rails/scaffold/docs/engineering/rails-rules.md +33 -0
- templates/rails/scaffold/docs/playbooks/rails-service.md +42 -0
- templates/rails/scaffold/src/backend/Gemfile +12 -0
- templates/rails/scaffold/src/backend/app/controllers/application_controller.rb +26 -0
- templates/rails/scaffold/src/backend/app/controllers/health_controller.rb +6 -0
- templates/rails/scaffold/src/backend/app/models/health.rb +6 -0
- templates/rails/scaffold/src/backend/config/application.rb +12 -0
- templates/rails/scaffold/src/backend/config/boot.rb +3 -0
- templates/rails/scaffold/src/backend/config/routes.rb +4 -0
- templates/rails/scaffold/src/backend/config.ru +5 -0
- templates/rails/scaffold/src/backend/spec/rails_helper.rb +18 -0
- templates/rails/scaffold/src/backend/spec/requests/health_spec.rb +24 -0
- templates/rails/scaffold-boundary.yaml +25 -0
- templates/rails/skills/rails/SKILL.md +62 -0
- templates/rails/skills/rails/references/anatomy.md +71 -0
- templates/rails/stack.yaml +72 -0
- templates/react-native/rules/mobile.md +26 -0
- templates/react-native/scaffold/docs/engineering/accessibility-mobile.md +95 -0
- templates/react-native/scaffold/docs/engineering/mobile-rules.md +56 -0
- templates/react-native/scaffold/docs/engineering/offline-first.md +61 -0
- templates/react-native/scaffold/docs/playbooks/mobile-app.md +49 -0
- templates/react-native/scaffold/src/mobile/App.tsx +9 -0
- templates/react-native/scaffold/src/mobile/eslint.config.js +17 -0
- templates/react-native/scaffold/src/mobile/package.json +23 -0
- templates/react-native/scaffold/src/mobile/src/greeting.test.ts +9 -0
- templates/react-native/scaffold/src/mobile/src/greeting.ts +3 -0
- templates/react-native/scaffold/src/mobile/tsconfig.json +17 -0
- templates/react-native/scaffold/src/mobile/vitest.config.ts +10 -0
- templates/react-native/scaffold-boundary.yaml +30 -0
- templates/react-native/skills/react-native-mobile/SKILL.md +119 -0
- templates/react-native/skills/react-native-mobile/assets/rn-mobile-checklist.md +28 -0
- templates/react-native/skills/react-native-mobile/references/anatomy.md +140 -0
- templates/react-native/skills/react-native-mobile/references/rn-2026-practices.md +54 -0
- templates/react-native/skills/react-native-mobile/scripts/new_screen.py +73 -0
- templates/react-native/skills/react-native-mobile/versions.json +16 -0
- templates/react-native/skills/react-native-patterns/SKILL.md +512 -0
- templates/react-native/skills/react-native-patterns/assets/rn-review-checklist.md +26 -0
- templates/react-native/skills/react-native-patterns/references/anatomy.md +62 -0
- templates/react-native/skills/react-native-patterns/references/list-performance.md +70 -0
- templates/react-native/skills/react-native-patterns/scripts/scan_rn_perf.py +77 -0
- templates/react-native/stack.yaml +70 -0
- templates/ruby-plain/scaffold/src/backend/Gemfile +8 -0
- templates/ruby-plain/scaffold/src/backend/main.rb +3 -0
- templates/ruby-plain/scaffold-boundary.yaml +23 -0
- templates/ruby-plain/stack.yaml +50 -0
- templates/rust-axum/rules/backend.md +20 -0
- templates/rust-axum/scaffold/docs/engineering/rust-axum-rules.md +35 -0
- templates/rust-axum/scaffold/docs/playbooks/rust-axum-service.md +43 -0
- templates/rust-axum/scaffold/src/backend/Cargo.toml +20 -0
- templates/rust-axum/scaffold/src/backend/src/app.rs +12 -0
- templates/rust-axum/scaffold/src/backend/src/error.rs +48 -0
- templates/rust-axum/scaffold/src/backend/src/main.rs +24 -0
- templates/rust-axum/scaffold/src/backend/src/routes/health.rs +37 -0
- templates/rust-axum/scaffold/src/backend/src/routes/mod.rs +2 -0
- templates/rust-axum/scaffold-boundary.yaml +25 -0
- templates/rust-axum/skills/rust/SKILL.md +73 -0
- templates/rust-axum/skills/rust/references/anatomy.md +63 -0
- templates/rust-axum/stack.yaml +65 -0
- templates/rust-plain/scaffold/src/backend/Cargo.toml +6 -0
- templates/rust-plain/scaffold/src/backend/src/main.rs +3 -0
- templates/rust-plain/scaffold-boundary.yaml +23 -0
- templates/rust-plain/stack.yaml +51 -0
- templates/spring-boot/rules/backend.md +20 -0
- templates/spring-boot/scaffold/docs/engineering/spring-boot-rules.md +35 -0
- templates/spring-boot/scaffold/docs/playbooks/spring-boot-service.md +45 -0
- templates/spring-boot/scaffold/src/backend/mvnw +302 -0
- templates/spring-boot/scaffold/src/backend/pom.xml +69 -0
- templates/spring-boot/scaffold/src/backend/src/main/java/com/example/app/Application.java +16 -0
- templates/spring-boot/scaffold/src/backend/src/main/java/com/example/app/common/GlobalExceptionHandler.java +31 -0
- templates/spring-boot/scaffold/src/backend/src/main/java/com/example/app/health/HealthController.java +22 -0
- templates/spring-boot/scaffold/src/backend/src/main/java/com/example/app/health/HealthService.java +12 -0
- templates/spring-boot/scaffold/src/backend/src/main/java/com/example/app/health/HealthStatus.java +4 -0
- templates/spring-boot/scaffold/src/backend/src/test/java/com/example/app/health/HealthServiceTest.java +15 -0
- templates/spring-boot/scaffold-boundary.yaml +26 -0
- templates/spring-boot/skills/spring-boot/SKILL.md +84 -0
- templates/spring-boot/skills/spring-boot/references/anatomy.md +63 -0
- templates/spring-boot/stack.yaml +65 -0
- templates/svelte-sveltekit/rules/frontend.md +20 -0
- templates/svelte-sveltekit/scaffold/docs/engineering/svelte-sveltekit-rules.md +37 -0
- templates/svelte-sveltekit/scaffold/docs/playbooks/svelte-sveltekit-app.md +36 -0
- templates/svelte-sveltekit/scaffold/src/frontend/package.json +22 -0
- templates/svelte-sveltekit/scaffold/src/frontend/src/app.html +12 -0
- templates/svelte-sveltekit/scaffold/src/frontend/src/hooks.server.ts +14 -0
- templates/svelte-sveltekit/scaffold/src/frontend/src/lib/components/Greeting.svelte +6 -0
- templates/svelte-sveltekit/scaffold/src/frontend/src/lib/stores/count.test.ts +26 -0
- templates/svelte-sveltekit/scaffold/src/frontend/src/lib/stores/count.ts +4 -0
- templates/svelte-sveltekit/scaffold/src/frontend/src/routes/+layout.svelte +24 -0
- templates/svelte-sveltekit/scaffold/src/frontend/src/routes/+page.svelte +9 -0
- templates/svelte-sveltekit/scaffold/src/frontend/src/routes/+page.ts +7 -0
- templates/svelte-sveltekit/scaffold/src/frontend/src/routes/health/+server.ts +7 -0
- templates/svelte-sveltekit/scaffold/src/frontend/svelte.config.js +10 -0
- templates/svelte-sveltekit/scaffold/src/frontend/tsconfig.json +7 -0
- templates/svelte-sveltekit/scaffold/src/frontend/vite.config.ts +7 -0
- templates/svelte-sveltekit/scaffold/src/frontend/vitest.config.ts +11 -0
- templates/svelte-sveltekit/scaffold-boundary.yaml +29 -0
- templates/svelte-sveltekit/skills/svelte/SKILL.md +90 -0
- templates/svelte-sveltekit/skills/svelte/references/anatomy.md +62 -0
- templates/svelte-sveltekit/stack.yaml +70 -0
- templates/typescript-plain/scaffold/src/index.ts +3 -0
- templates/typescript-plain/scaffold/tsconfig.json +13 -0
- templates/typescript-plain/scaffold-boundary.yaml +22 -0
- templates/typescript-plain/stack.yaml +44 -0
- templates/vue-nuxt/rules/frontend.md +19 -0
- templates/vue-nuxt/scaffold/docs/engineering/nuxt-rules.md +30 -0
- templates/vue-nuxt/scaffold/docs/playbooks/nuxt-app.md +29 -0
- templates/vue-nuxt/scaffold/src/frontend/app.vue +3 -0
- templates/vue-nuxt/scaffold/src/frontend/nuxt.config.ts +11 -0
- templates/vue-nuxt/scaffold/src/frontend/package.json +20 -0
- templates/vue-nuxt/scaffold/src/frontend/pages/index.test.ts +19 -0
- templates/vue-nuxt/scaffold/src/frontend/pages/index.vue +11 -0
- templates/vue-nuxt/scaffold/src/frontend/vitest.config.ts +12 -0
- templates/vue-nuxt/scaffold-boundary.yaml +26 -0
- templates/vue-nuxt/skills/vue-nuxt/SKILL.md +57 -0
- templates/vue-nuxt/skills/vue-nuxt/references/anatomy.md +60 -0
- templates/vue-nuxt/stack.yaml +61 -0
- templates/wordpress/rules/backend.md +19 -0
- templates/wordpress/scaffold/docs/engineering/wordpress-rules.md +28 -0
- templates/wordpress/scaffold/docs/playbooks/wordpress-service.md +29 -0
- templates/wordpress/scaffold/src/backend/composer.json +17 -0
- templates/wordpress/scaffold/src/backend/phpcs.xml.dist +11 -0
- templates/wordpress/scaffold/src/backend/phpunit.xml +10 -0
- templates/wordpress/scaffold/src/backend/plugin/inc/health.php +8 -0
- templates/wordpress/scaffold/src/backend/plugin/plugin.php +28 -0
- templates/wordpress/scaffold/src/backend/tests/HealthStatusTest.php +15 -0
- templates/wordpress/scaffold/src/backend/theme/functions.php +18 -0
- templates/wordpress/scaffold/src/backend/theme/style.css +11 -0
- templates/wordpress/scaffold-boundary.yaml +23 -0
- templates/wordpress/skills/wordpress/SKILL.md +110 -0
- templates/wordpress/skills/wordpress/assets/wp-checklist.md +28 -0
- templates/wordpress/skills/wordpress/references/wp-development.md +75 -0
- templates/wordpress/skills/wordpress/references/wp-security.md +68 -0
- templates/wordpress/skills/wordpress/scripts/scan_wp_smells.py +91 -0
- templates/wordpress/skills/wordpress/versions.json +16 -0
- templates/wordpress/stack.yaml +60 -0
- thinking_os/__init__.py +1 -0
- thinking_os/_agent_markers.py +32 -0
- thinking_os/background.py +405 -0
- thinking_os/bootstrap_outcomes.py +200 -0
- thinking_os/budget.py +302 -0
- thinking_os/capture.py +495 -0
- thinking_os/cognition.py +516 -0
- thinking_os/cognition_schemas.py +517 -0
- thinking_os/compress.py +192 -0
- thinking_os/concepts.py +233 -0
- thinking_os/dashboard.py +159 -0
- thinking_os/database.py +2883 -0
- thinking_os/decay.py +393 -0
- thinking_os/digest.py +295 -0
- thinking_os/dispatcher.py +192 -0
- thinking_os/dispatcher_helpers.py +48 -0
- thinking_os/dispatchers/__init__.py +3 -0
- thinking_os/dispatchers/default.py +47 -0
- thinking_os/distill.py +192 -0
- thinking_os/doc_indexer.py +905 -0
- thinking_os/embeddings.py +943 -0
- thinking_os/formula_composer.py +556 -0
- thinking_os/gate_marker.py +75 -0
- thinking_os/graph.py +296 -0
- thinking_os/graph_indexer.py +360 -0
- thinking_os/health_check.py +517 -0
- thinking_os/impact.py +119 -0
- thinking_os/memory_gc.py +356 -0
- thinking_os/migrator_embeddings.py +318 -0
- thinking_os/precision.py +194 -0
- thinking_os/record_outcome.py +399 -0
- thinking_os/repair.py +105 -0
- thinking_os/retrieval_quality.py +239 -0
- thinking_os/roles_state.py +168 -0
- thinking_os/sanitizer.py +320 -0
- thinking_os/server.py +3160 -0
- thinking_os/session_enrich.py +272 -0
- thinking_os/session_observe_worker.py +111 -0
- thinking_os/session_startup.py +74 -0
- thinking_os/session_summary.py +245 -0
- thinking_os/task_analyzer.py +462 -0
- thinking_os/task_parser.py +342 -0
- thinking_os/task_sync.py +73 -0
- thinking_os/tools/__init__.py +6 -0
- thinking_os/tools/_shared.py +947 -0
- thinking_os/tools/cognition.py +1867 -0
- thinking_os/tools/docs.py +770 -0
- thinking_os/tools/learning.py +2078 -0
- thinking_os/tools/logs.py +79 -0
- thinking_os/tools/memory.py +840 -0
- thinking_os/tools/metrics.py +200 -0
- thinking_os/tools/retrieve.py +415 -0
- thinking_os/tools/routing.py +658 -0
- thinking_os/tools/tasks.py +449 -0
- thinking_os/tools/trajectory.py +181 -0
- thinking_os/tracing.py +235 -0
- web/__init__.py +5 -0
- web/_cache.py +118 -0
- web/_deps.py +56 -0
- web/_envelope.py +85 -0
- web/_project_context.py +140 -0
- web/chat_providers.py +108 -0
- web/init_jobs.py +216 -0
- web/routes/__init__.py +25 -0
- web/routes/_bounded_read.py +76 -0
- web/routes/board.py +1089 -0
- web/routes/cognition.py +1838 -0
- web/routes/config.py +635 -0
- web/routes/graph.py +513 -0
- web/routes/health.py +180 -0
- web/routes/hooks.py +288 -0
- web/routes/hub.py +1219 -0
- web/routes/logs.py +374 -0
- web/routes/metrics.py +43 -0
- web/routes/observability.py +400 -0
- web/routes/patterns.py +227 -0
- web/routes/presence.py +609 -0
- web/routes/roles.py +446 -0
- web/routes/scheduled.py +261 -0
- web/routes/search.py +238 -0
- web/routes/sessions.py +220 -0
- web/routes/settings.py +363 -0
- web/routes/stream.py +547 -0
- web/security.py +157 -0
- web/server.py +283 -0
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
<!-- domain:DOCS | layer:reference | ssot:true | updated:{{DATE}} -->
|
|
2
|
+
# Workflow Guide
|
|
3
|
+
|
|
4
|
+
Purpose: Quick-start guide for new contributors and AI agents joining the project.
|
|
5
|
+
Read when: First session in this repo, or when re-grounding after a long break.
|
|
6
|
+
Skip when: Already familiar with the workflow and have an active task.
|
|
7
|
+
Read next: `../governance/agent-workflow.md`, `../governance/task-lifecycle.md`
|
|
8
|
+
|
|
9
|
+
> Nav: [Docs Index](../00-index.md)
|
|
10
|
+
|
|
11
|
+
## TL;DR
|
|
12
|
+
|
|
13
|
+
This project uses **coding-os** — a documentation-driven workflow with SSOT files,
|
|
14
|
+
a Scrumban task board, and AI-agent enforcement hooks. Work flows through tasks:
|
|
15
|
+
`icebox → in_progress → testing → complete` (plus `blocked` / `archive`). The `cos` CLI and slash
|
|
16
|
+
commands drive the board; hooks enforce the discipline.
|
|
17
|
+
|
|
18
|
+
## Daily Workflow
|
|
19
|
+
|
|
20
|
+
1. **Start the session**
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
cos daily
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Shows yesterday's progress, today's candidate tasks, blockers, and WIP status.
|
|
27
|
+
(Also available as a slash command — see the Commands section below.)
|
|
28
|
+
|
|
29
|
+
2. **Pick or create a task**
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
cos task-pick # top recommended tasks to work on next
|
|
33
|
+
cos board # full Scrumban board (add --web for the Hub UI)
|
|
34
|
+
cos task-create --title "..." --swimlane <lane> --kind <type>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Reconcile against existing tasks first — never create a duplicate. If a
|
|
38
|
+
matching open task exists, use it.
|
|
39
|
+
|
|
40
|
+
3. **Start the task**
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
cos task-start TASK-NNN
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Enforces the WIP cap, sets the `.task-current` session marker, and moves the
|
|
47
|
+
task to `in_progress`.
|
|
48
|
+
|
|
49
|
+
4. **Classify (Thinking OS Complexity Gate)**
|
|
50
|
+
|
|
51
|
+
Before writing code, classify the task and record the gate:
|
|
52
|
+
|
|
53
|
+
- CLEAR (1 dim) → just do it
|
|
54
|
+
- COMPLICATED (2-4 dims) → Zoom cycle, plan first
|
|
55
|
+
- COMPLEX (5+ dims) → full Zoom + experiments
|
|
56
|
+
- CHAOTIC → stabilize first, classify after
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
bash .claude/hooks/write-state.sh .coding-os/claude/.thinking_os-gate "COMPLICATED 3"
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
(Replace `.claude` / `claude` with your adapter dir — `.codex` / `codex` for
|
|
63
|
+
Codex. Slash-command equivalent: `/classify COMPLICATED 3`.) A hook BLOCKS
|
|
64
|
+
code writes until the gate is recorded.
|
|
65
|
+
|
|
66
|
+
5. **Implement**
|
|
67
|
+
|
|
68
|
+
Follow the Core Loop in `AGENTS.md` (Classify → Orient → Plan → Execute →
|
|
69
|
+
Verify). Hooks enforce skill loading, gate recording, doc anchors, and
|
|
70
|
+
verification along the way.
|
|
71
|
+
|
|
72
|
+
6. **Verify and close**
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
cos verify # matrix-targeted verification for changed files
|
|
76
|
+
cos task-move TASK-NNN --to testing
|
|
77
|
+
cos task-done TASK-NNN
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
(Slash-command equivalent for verification: `/verify`.) Never close a task
|
|
81
|
+
straight from `in_progress` — move to `testing`, run checks, then complete.
|
|
82
|
+
|
|
83
|
+
## Slash Commands
|
|
84
|
+
|
|
85
|
+
Type `/` in the agent to run a packaged workflow. Project commands live in
|
|
86
|
+
`.claude/commands/` (and `.codex/commands/`) and are version-controlled:
|
|
87
|
+
|
|
88
|
+
| Command | What it does |
|
|
89
|
+
|---|---|
|
|
90
|
+
<!-- if-module:tasks -->
|
|
91
|
+
| `/board` | Show the Scrumban board grouped by swimlane × status |
|
|
92
|
+
| `/daily` | Daily standup — yesterday, today's candidates, blockers, WIP |
|
|
93
|
+
| `/retro` | Retrospective for a period (default 14 days) |
|
|
94
|
+
| `/task TASK-NNN` | Load + summarize a task |
|
|
95
|
+
<!-- end-if -->
|
|
96
|
+
| `/classify Q1 Q2` | Record the Complexity Gate |
|
|
97
|
+
| `/verify` | Run matrix-targeted verification for changed files |
|
|
98
|
+
| `/review` | Review current changes against project standards |
|
|
99
|
+
| `/diagnose` | Run system health diagnostics (`cos doctor`) |
|
|
100
|
+
<!-- if-module:memory -->
|
|
101
|
+
| `/memory-search <query>` | Search agent memory for cross-session context |
|
|
102
|
+
<!-- end-if -->
|
|
103
|
+
| `/role-<name>` | Invoke one of the 11 semantic roles (researcher, architect, …) |
|
|
104
|
+
|
|
105
|
+
## Key Files
|
|
106
|
+
|
|
107
|
+
- `AGENTS.md` — Routing protocol + Core Loop (read first every session)
|
|
108
|
+
- `docs/00-index.md` — Master navigation hub
|
|
109
|
+
- `docs/tasks/TASK-NNN-*.md` — Task detail files (the board's source of truth)
|
|
110
|
+
- `docs/governance/` — Workflow policies (`agent-workflow.md`, `task-lifecycle.md`, `critical-rules.md`)
|
|
111
|
+
- `docs/playbooks/` — Domain-specific routing maps (if installed)
|
|
112
|
+
- `docs/engineering/` — Coding standards (if installed)
|
|
113
|
+
|
|
114
|
+
## Commands Cheat Sheet
|
|
115
|
+
|
|
116
|
+
| Command | What it does |
|
|
117
|
+
|---|---|
|
|
118
|
+
| `cos daily` | Standup view — last 24h + today's candidates + blockers |
|
|
119
|
+
| `cos board [--web]` | Scrumban board (ASCII, or Hub UI) |
|
|
120
|
+
| `cos task-pick` | Next recommended task |
|
|
121
|
+
| `cos task-create --title "..." --swimlane <lane> --kind <type>` | Create a task |
|
|
122
|
+
| `cos task-start TASK-NNN` | Start a task (sets WIP + `.task-current`) |
|
|
123
|
+
| `cos task-move TASK-NNN --to <status>` | Move a task between statuses |
|
|
124
|
+
| `cos task-done TASK-NNN` | Complete a task |
|
|
125
|
+
| `cos task-show TASK-NNN` | Show a task's full content |
|
|
126
|
+
| `cos retro` | Weekly retrospective — throughput + cycle time |
|
|
127
|
+
| `cos verify` | Matrix-targeted verification for changed files |
|
|
128
|
+
| `cos doctor` | Deep health check (scaffold, DB, adapter, symlinks) |
|
|
129
|
+
| `cos health` | Fast health summary |
|
|
130
|
+
|
|
131
|
+
## Thinking OS — Memory and Learning
|
|
132
|
+
|
|
133
|
+
The `coding-os` MCP server provides tools for memory, learning, metrics, routing,
|
|
134
|
+
and graph queries. See `../governance/mcp-tool-inventory.md` for the full inventory.
|
|
135
|
+
|
|
136
|
+
Key flow: every tool use → captured to the DB. Every task done → outcome recorded.
|
|
137
|
+
Every 10 tasks → patterns extracted. Every session start → relevant past patterns
|
|
138
|
+
suggested.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<!-- domain:ALL | layer:reference | ssot:true | updated:{{DATE}} -->
|
|
2
|
+
# `src/shared/` — Cross-Stack Contract Layer
|
|
3
|
+
|
|
4
|
+
Purpose: Hosts types, contracts, and constants that two or more stacks must agree on. The only directory every installed stack is allowed to import from (per each stack's `scaffold-boundary.yaml::imports_from`).
|
|
5
|
+
|
|
6
|
+
Read when: Adding a field that crosses a stack boundary (e.g. backend response shape consumed by frontend or mobile).
|
|
7
|
+
|
|
8
|
+
Skip when: The artifact lives entirely inside one stack — keep it there.
|
|
9
|
+
|
|
10
|
+
## Layout
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
src/shared/
|
|
14
|
+
├── types/ # language-neutral type declarations (e.g. TypeScript .d.ts, Pydantic JSON schemas, .proto)
|
|
15
|
+
└── contracts/ # API / event / message contracts that pin producer ↔ consumer
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Rules
|
|
19
|
+
|
|
20
|
+
- Producers (backend / api / worker) MUST update `src/shared/` BEFORE consumers (frontend / mobile) read the new shape.
|
|
21
|
+
- No stack writes into another stack's root — cross-stack changes flow through `src/shared/` only.
|
|
22
|
+
- See [governance/scaffold-boundary-contract.md](../../docs/governance/scaffold-boundary-contract.md) for the per-stack boundary that pins the policy.
|
|
23
|
+
- See [engineering/api-contract-discipline.md](../../docs/engineering/api-contract-discipline.md) (if installed) for why consumers verify field names against producers, not memory.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Skill Loading Enforcement
|
|
2
|
+
|
|
3
|
+
> **This file was the legacy hand-edited skill-enforcement table** with hardcoded per-project skills.
|
|
4
|
+
> **It is no longer the source of truth.** Skill enforcement is now generated
|
|
5
|
+
> from `src/templates/<stack>/stack.yaml::skill_enforcement` by `src/scripts/regen_rules.py`.
|
|
6
|
+
> Generated output: [src/core/rules/skill-enforcement.md](../../core/rules/skill-enforcement.md).
|
|
7
|
+
>
|
|
8
|
+
> To change skill routing for a stack: edit that stack's `stack.yaml` and run
|
|
9
|
+
> `make regen-rules`.
|
|
10
|
+
>
|
|
11
|
+
> This stub is retained because `src/templates/_base/skill-enforcement.template.md`
|
|
12
|
+
> is referenced by `src/cli/_data_types.py::SkillEnforcementRow`; emptying the
|
|
13
|
+
> file would break the import path. It deliberately contains no enforcement
|
|
14
|
+
> rules — they live in the regenerated artifact.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
# Lean task template — see docs/phase-l-scrumban-task-system-plan.md
|
|
3
|
+
#
|
|
4
|
+
# AGENT: All four categorization axes are required (`epic` optional).
|
|
5
|
+
# `validate-task-frontmatter.sh` will reject this file on Write/Edit if any
|
|
6
|
+
# enum is wrong, swimlane is unknown, or `labels` overlaps `kind` values.
|
|
7
|
+
#
|
|
8
|
+
# Prefer creating tasks via `cos_task_create` MCP tool over hand-writing
|
|
9
|
+
# this YAML — the tool fills, validates, and persists in one call.
|
|
10
|
+
id: {{TASK_ID}}
|
|
11
|
+
title: "{{TITLE}}"
|
|
12
|
+
swimlane: {{SWIMLANE}} # DOMAIN — must exist in scrumban-config.yaml::swimlanes
|
|
13
|
+
kind: {{KIND}} # TYPE — feature | bug | chore | spike | docs | refactor | test | security
|
|
14
|
+
epic: {{EPIC|null}} # INITIATIVE — optional (e.g. phase-l, mvp, oncall-q2)
|
|
15
|
+
labels: {{LABELS|[]}} # FREE TAGS — must NOT contain kind values
|
|
16
|
+
priority: {{PRIORITY|P2}} # P0 critical | P1 high | P2 normal | P3 low
|
|
17
|
+
appetite: "{{APPETITE|1d}}" # Shape Up: 30m | 2h | 1d | 3d | 1w | 1cy
|
|
18
|
+
status: icebox # always start here; transition via cos_task_move
|
|
19
|
+
created: {{TODAY}}
|
|
20
|
+
started: null
|
|
21
|
+
completed: null
|
|
22
|
+
agent_session: null
|
|
23
|
+
depends_on: {{DEPENDS_ON|[]}} # hard block — these must complete first
|
|
24
|
+
blocked_by: [] # runtime block — agent fills with reason
|
|
25
|
+
references: {{REFERENCES|[]}} # soft relationship; sibling tasks
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
# {{TASK_ID}}: {{TITLE}}
|
|
29
|
+
|
|
30
|
+
**Outcome (one sentence):** <!-- AGENT: ONE concrete sentence describing what
|
|
31
|
+
will be true when this task is done. Not a re-spec. Not a goal. A measurable
|
|
32
|
+
end-state with metric where possible. Bad: "improve auth". Good: "users log
|
|
33
|
+
in with email + OTP, P95 < 500ms, on iOS + Android + web". -->
|
|
34
|
+
|
|
35
|
+
## Read First
|
|
36
|
+
<!-- AGENT: ONLY links to existing docs/files. NEVER inline content from them.
|
|
37
|
+
If no relevant doc exists: (a) note "no doc — exploratory", or (b) create
|
|
38
|
+
the doc first via Formula 4 then link to it. Rule 15 forbids duplication. -->
|
|
39
|
+
|
|
40
|
+
- [path/to/doc.md](relative/path) — short reason
|
|
41
|
+
- [path/to/code.py](relative/path) — short reason
|
|
42
|
+
|
|
43
|
+
## Acceptance (G/W/T) — *this IS the Definition of Done*
|
|
44
|
+
<!-- AGENT: 1–3 Given/When/Then statements. Each becomes a test case.
|
|
45
|
+
When ALL pass, task is Done. Not "perfect" — Done. Scope-creep =
|
|
46
|
+
new task via cos_task_create. -->
|
|
47
|
+
|
|
48
|
+
- **Given** <precondition>
|
|
49
|
+
- **When** <action>
|
|
50
|
+
- **Then** <observable outcome with concrete metric>
|
|
51
|
+
|
|
52
|
+
## Work Log
|
|
53
|
+
<!-- AGENT: AUTO-APPENDED by capture-work-log.sh hook on Write/Edit.
|
|
54
|
+
Format: `- YYYY-MM-DD [agent-id | ses-NNNNNNNN]: <120-char summary>`.
|
|
55
|
+
NEVER rewrite. NEVER reformat. Append-only. Codex sessions: call
|
|
56
|
+
cos_work_log_append() explicitly (no PostToolUse hook). -->
|
|
57
|
+
|
|
58
|
+
## Rollback
|
|
59
|
+
<!-- AGENT: Optional but recommended. If purely additive: "Additive only.
|
|
60
|
+
Revert commit." If has migrations or shared-state mutations: list explicit
|
|
61
|
+
undo steps. -->
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
id: ai-saas
|
|
3
|
+
label: "AI SaaS (Next.js + FastAPI)"
|
|
4
|
+
description: >-
|
|
5
|
+
The dominant AI-product shape: Next.js web app with a Python FastAPI
|
|
6
|
+
backend serving model endpoints. Ships llm-patterns and observability
|
|
7
|
+
skills so token costs and latency are first-class from day one.
|
|
8
|
+
stacks: [nextjs, fastapi]
|
|
9
|
+
skills: [llm-patterns, observability]
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
id: dotnet-react
|
|
3
|
+
label: ".NET (ASP.NET Core) + React"
|
|
4
|
+
description: >-
|
|
5
|
+
An ASP.NET Core backend (minimal API/controllers, DI, middleware) with a
|
|
6
|
+
Next.js React frontend. api-design governs the contract across the seam.
|
|
7
|
+
stacks: [aspnet-core, nextjs]
|
|
8
|
+
skills: [api-design]
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
id: flutter-baas
|
|
3
|
+
label: "Flutter + BaaS (mobile, backend-as-a-service)"
|
|
4
|
+
description: >-
|
|
5
|
+
A Flutter mobile app fronting a managed backend (Firebase/Supabase-style) —
|
|
6
|
+
screens, widgets, and provider state. state-management covers the client store.
|
|
7
|
+
stacks: [flutter]
|
|
8
|
+
skills: [state-management]
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
id: go-react
|
|
3
|
+
label: "Go API + React"
|
|
4
|
+
description: >-
|
|
5
|
+
A pragmatic performance pairing: a Go + Fiber API backend with a Next.js
|
|
6
|
+
React frontend. api-design governs the JSON contract across the seam.
|
|
7
|
+
stacks: [go-fiber, nextjs]
|
|
8
|
+
skills: [api-design]
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# The flagship multi-service composition (TASK-365): hexagonal product with a
|
|
2
|
+
# Go business core, a go-fiber API edge, a FastAPI AI adapter and a React
|
|
3
|
+
# Native app. The three backend-root stacks collide on src/backend and
|
|
4
|
+
# relocate to src/services/{go,go-fiber,fastapi} per the anatomy contract
|
|
5
|
+
# (semantically: core / api / ai); cross-language reuse goes through
|
|
6
|
+
# src/shared/contracts only.
|
|
7
|
+
version: 1
|
|
8
|
+
id: hexagonal-product
|
|
9
|
+
label: "Hexagonal Product (Go core + Fiber API + FastAPI AI + React Native)"
|
|
10
|
+
description: >-
|
|
11
|
+
Enterprise hexagonal architecture from day one: pure-Go business core,
|
|
12
|
+
go-fiber HTTP edge, FastAPI AI adapter service and a React Native app —
|
|
13
|
+
each service owns its subtree under src/services/, contracts are the only
|
|
14
|
+
cross-language boundary.
|
|
15
|
+
stacks: [go, go-fiber, fastapi, react-native]
|
|
16
|
+
skills: [hexagonal-architecture, api-design]
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
id: jamstack
|
|
3
|
+
label: "JAMstack (Astro content site)"
|
|
4
|
+
description: >-
|
|
5
|
+
Content-first, statically generated sites with Astro islands — marketing,
|
|
6
|
+
docs, and SEO-driven pages. a11y keeps the rendered output accessible.
|
|
7
|
+
stacks: [astro]
|
|
8
|
+
skills: [a11y]
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
id: laravel-vue
|
|
3
|
+
label: "Laravel + Vue"
|
|
4
|
+
description: >-
|
|
5
|
+
The Laravel ecosystem's signature pairing: a Laravel PHP backend with a
|
|
6
|
+
Vue 3 + Nuxt frontend. api-design governs the contract across the seam.
|
|
7
|
+
stacks: [laravel, vue-nuxt]
|
|
8
|
+
skills: [api-design]
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
id: mean
|
|
3
|
+
label: "MEAN (Mongo + Express + Angular + Node)"
|
|
4
|
+
description: >-
|
|
5
|
+
The Angular take on the JavaScript stack: an Express/TypeScript API with an
|
|
6
|
+
Angular SPA frontend, document-store oriented. db-design covers the data model.
|
|
7
|
+
stacks: [node-express, angular]
|
|
8
|
+
skills: [db-design]
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
id: mern
|
|
3
|
+
label: "MERN (Mongo + Express + React + Node)"
|
|
4
|
+
description: >-
|
|
5
|
+
The most-searched JavaScript stack: an Express/TypeScript API with a React
|
|
6
|
+
frontend (Next.js as the modern React harness), document-store oriented —
|
|
7
|
+
the React sibling of MEAN. db-design covers the data model.
|
|
8
|
+
stacks: [node-express, nextjs]
|
|
9
|
+
skills: [db-design]
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
id: nest-angular
|
|
3
|
+
label: "NestJS + Angular (full TypeScript enterprise)"
|
|
4
|
+
description: >-
|
|
5
|
+
End-to-end TypeScript: a NestJS modular backend with an Angular SPA frontend —
|
|
6
|
+
shared types across the seam. api-design governs the contract.
|
|
7
|
+
stacks: [nestjs, angular]
|
|
8
|
+
skills: [api-design]
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Seed preset proving the model end-to-end (TASK-356). The famous-combo
|
|
2
|
+
# catalog (T3, MERN-style, the flagship hexagonal, …) lands in TASK-371/365.
|
|
3
|
+
version: 1
|
|
4
|
+
id: nextjs-fastapi
|
|
5
|
+
label: "Next.js + FastAPI full-stack"
|
|
6
|
+
description: >-
|
|
7
|
+
TypeScript web frontend with a Python API backend — the most common
|
|
8
|
+
two-language starter. Frontend and backend own separate roots, so no
|
|
9
|
+
service relocation is triggered.
|
|
10
|
+
stacks: [nextjs, fastapi]
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
id: nuxt-fullstack
|
|
3
|
+
label: "Nuxt full-stack (Vue 3)"
|
|
4
|
+
description: >-
|
|
5
|
+
Single-app full-stack Vue in the Nuxt spirit: one Nuxt codebase owning UI
|
|
6
|
+
and server routes, typed end to end — the Vue counterpart of T3-style.
|
|
7
|
+
db-design and api-design cover the data and contract decisions.
|
|
8
|
+
stacks: [vue-nuxt]
|
|
9
|
+
skills: [db-design, api-design]
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
id: pern
|
|
3
|
+
label: "PERN (Postgres + Express + React + Node)"
|
|
4
|
+
description: >-
|
|
5
|
+
The classic JavaScript split: Express/TypeScript API with a React
|
|
6
|
+
frontend (Next.js as the modern React harness) over Postgres.
|
|
7
|
+
sql-authoring and db-design cover the relational core.
|
|
8
|
+
stacks: [node-express, nextjs]
|
|
9
|
+
skills: [sql-authoring, db-design]
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
id: rails-react
|
|
3
|
+
label: "Rails API + React"
|
|
4
|
+
description: >-
|
|
5
|
+
A Ruby on Rails API backend (controllers, ActiveRecord) with a Next.js React
|
|
6
|
+
frontend. api-design governs the JSON contract across the seam.
|
|
7
|
+
stacks: [rails, nextjs]
|
|
8
|
+
skills: [api-design]
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
id: rn-api
|
|
3
|
+
label: "Mobile app + API (React Native + FastAPI)"
|
|
4
|
+
description: >-
|
|
5
|
+
Mobile-first product: React Native app with a Python FastAPI backend —
|
|
6
|
+
contracts in src/shared/contracts are the single client/server boundary.
|
|
7
|
+
stacks: [react-native, fastapi]
|
|
8
|
+
skills: [api-design]
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
id: rust-svelte
|
|
3
|
+
label: "Rust (Axum) + SvelteKit"
|
|
4
|
+
description: >-
|
|
5
|
+
A performance-first stack: a Rust + Axum backend with a SvelteKit frontend —
|
|
6
|
+
low overhead on both ends. api-design governs the contract.
|
|
7
|
+
stacks: [rust-axum, svelte-sveltekit]
|
|
8
|
+
skills: [api-design]
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
id: spring-react
|
|
3
|
+
label: "Spring Boot + React (enterprise JVM)"
|
|
4
|
+
description: >-
|
|
5
|
+
An enterprise JVM backend (Spring Boot, controllers/services/repositories)
|
|
6
|
+
with a Next.js React frontend. api-design governs the contract between them.
|
|
7
|
+
stacks: [spring-boot, nextjs]
|
|
8
|
+
skills: [api-design]
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
id: t3-style
|
|
3
|
+
label: "T3-style (full-stack TypeScript Next.js)"
|
|
4
|
+
description: >-
|
|
5
|
+
Single-app full-stack TypeScript in the T3 spirit: one Next.js codebase
|
|
6
|
+
owning UI and API routes, typed end to end. db-design and api-design
|
|
7
|
+
skills cover the Prisma/tRPC-shaped decisions.
|
|
8
|
+
stacks: [nextjs]
|
|
9
|
+
skills: [db-design, api-design]
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
id: tall
|
|
3
|
+
label: "TALL-style (Tailwind + Laravel)"
|
|
4
|
+
description: >-
|
|
5
|
+
A Laravel-centric server-rendered product stack — controllers, Eloquent, and
|
|
6
|
+
Blade-driven UI. security-web keeps the web surface hardened.
|
|
7
|
+
stacks: [laravel]
|
|
8
|
+
skills: [security-web]
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
id: wordpress-cms
|
|
3
|
+
label: "WordPress CMS"
|
|
4
|
+
description: >-
|
|
5
|
+
A content-managed WordPress site — theme for presentation, plugin for portable
|
|
6
|
+
business logic. security-web enforces sanitize/escape/nonce discipline.
|
|
7
|
+
stacks: [wordpress]
|
|
8
|
+
skills: [security-web]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
globs: ["src/frontend/**/*.{ts,html,css}"]
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Angular Frontend Rules (auto-loaded on src/frontend/**)
|
|
7
|
+
|
|
8
|
+
When editing any file under `src/frontend/`, follow these standards:
|
|
9
|
+
|
|
10
|
+
- **Standalone components only** — no NgModules; declare `imports` on the component.
|
|
11
|
+
- **Signals for state** — `signal` / `computed` over manual change detection; prefer `OnPush`.
|
|
12
|
+
- **Services own side effects** — components stay presentation-only; data + RxJS live in injectable services.
|
|
13
|
+
- **Typed data boundaries** — every HTTP response is typed; no `any`.
|
|
14
|
+
- **Accessibility** — semantic HTML, labelled inputs, keyboard-reachable interactions.
|
|
15
|
+
- **One error shaper** — a global `ErrorHandler` formats errors; components never show raw server messages.
|
|
16
|
+
|
|
17
|
+
Canonical policy: `docs/engineering/angular-rules.md`
|
|
18
|
+
Playbook: `docs/playbooks/angular-app.md`
|
|
19
|
+
Primary skill: `angular`
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<!-- domain:FRONTEND | layer:reference | ssot:true | updated:2026-06-30 -->
|
|
2
|
+
# Accessibility (a11y) Checklist — WCAG 2.2 AA (Angular)
|
|
3
|
+
|
|
4
|
+
Purpose: Living checklist for accessibility compliance across the Angular frontend.
|
|
5
|
+
Read when: Building or reviewing any component, route, form, or interactive widget.
|
|
6
|
+
Skip when: Working on backend-only tasks.
|
|
7
|
+
Read next: [Angular Engineering Rules](./angular-rules.md) for general conventions.
|
|
8
|
+
|
|
9
|
+
> Nav: [Docs Index](../00-index.md) | [Angular Rules](./angular-rules.md)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Semantics & Interactive Elements
|
|
14
|
+
|
|
15
|
+
- Prefer native elements (`<button>`, `<a href>`, `<input>`) over `<div (click)>` — they ship roles, focus, and keyboard handling for free.
|
|
16
|
+
- Icon-only controls MUST set `[attr.aria-label]` describing the action, not the icon.
|
|
17
|
+
- Every form control MUST have an associated `<label for>` (or `aria-label` / `aria-labelledby`).
|
|
18
|
+
- Required fields set `[attr.aria-required]="true"`; invalid fields set `[attr.aria-invalid]="true"` and link the message via `[attr.aria-describedby]`.
|
|
19
|
+
- Custom widgets (dialog, menu, tabs, combobox) follow the matching ARIA Authoring Practices pattern — reach for `@angular/cdk/a11y` before hand-rolling roles and key handling.
|
|
20
|
+
|
|
21
|
+
## Keyboard Navigation
|
|
22
|
+
|
|
23
|
+
- Tab order follows reading order — never `tabindex > 0`.
|
|
24
|
+
- Every interactive element is operable with Enter/Space; Escape closes overlays.
|
|
25
|
+
- Trap focus inside open dialogs with the CDK `cdkTrapFocus` directive; restore focus to the trigger element on close.
|
|
26
|
+
- Keep a visible focus indicator on every focusable element (`:focus-visible`) — never `outline: none` without a replacement.
|
|
27
|
+
- The first focusable element of the shell is a "skip to main content" link.
|
|
28
|
+
|
|
29
|
+
## Dynamic Content
|
|
30
|
+
|
|
31
|
+
- Announce async state changes (toasts, validation, route changes) with the CDK `LiveAnnouncer` or an `aria-live` region — `polite` for status, `assertive` for errors.
|
|
32
|
+
- On client-side navigation, move focus to the new view's `<h1>` so screen-reader users are not stranded on the old page.
|
|
33
|
+
|
|
34
|
+
## Color & Motion
|
|
35
|
+
|
|
36
|
+
- Contrast: normal text ≥ 4.5:1; large text (≥ 18.66px bold or ≥ 24px) ≥ 3:1; UI components and focus indicators ≥ 3:1.
|
|
37
|
+
- Never convey meaning by color alone — pair it with text or an icon.
|
|
38
|
+
- Honor `prefers-reduced-motion`: gate non-essential animation behind the media query.
|
|
39
|
+
|
|
40
|
+
## Verify
|
|
41
|
+
|
|
42
|
+
- Static: enable the `@angular-eslint` template-accessibility rules in the lint config.
|
|
43
|
+
- Runtime: run axe-core (e.g. `@axe-core/playwright`) against key routes in CI and fail the build on violations.
|
|
44
|
+
- Manual: tab through each new view with no mouse, then do a screen-reader pass (VoiceOver / NVDA) on forms and dialogs.
|
|
45
|
+
|
|
46
|
+
See the core `a11y` skill for cross-framework rationale and screen-reader testing recipes.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<!-- domain:FRONTEND | layer:rules | ssot:true | updated:{{DATE}} -->
|
|
2
|
+
# Angular Engineering Rules
|
|
3
|
+
|
|
4
|
+
Purpose: Non-negotiable conventions for the {{PROJECT_NAME}} Angular frontend.
|
|
5
|
+
Read when: Editing anything under `src/frontend/`.
|
|
6
|
+
Skip when: Backend/mobile work.
|
|
7
|
+
Read next: [Angular App Playbook](../playbooks/angular-app.md)
|
|
8
|
+
|
|
9
|
+
> Nav: [Master Index](../00-index.md)
|
|
10
|
+
|
|
11
|
+
## Hard rules
|
|
12
|
+
|
|
13
|
+
1. **Standalone only** — `standalone: true` on every component; no `@NgModule`.
|
|
14
|
+
Declare per-component `imports`; the layering table in the `angular` skill is
|
|
15
|
+
the SSOT.
|
|
16
|
+
2. **Signals for state** — `signal`/`computed`/`effect` drive the view; pair
|
|
17
|
+
with `ChangeDetectionStrategy.OnPush`. Manual `ChangeDetectorRef.detectChanges`
|
|
18
|
+
in feature code is a review finding.
|
|
19
|
+
3. **Services own side effects** — a component importing `HttpClient` or holding
|
|
20
|
+
shared mutable state is a build-blocking finding; that belongs in an
|
|
21
|
+
injectable service.
|
|
22
|
+
4. **One error shaper** — only the global `ErrorHandler` logs full detail; the UI
|
|
23
|
+
shows a generic, mapped message — never a raw server/stack string.
|
|
24
|
+
5. **Dependency injection** — inject with `inject()` or constructor params;
|
|
25
|
+
never `new` a service — it bypasses the injector and breaks test overrides.
|
|
26
|
+
6. **Strict TypeScript + templates** — `tsc --noEmit` with `strictTemplates` is
|
|
27
|
+
the lint gate; `any` requires a written justification at the site.
|
|
28
|
+
7. **Unsubscribe discipline** — prefer the `async` pipe or `takeUntilDestroyed`;
|
|
29
|
+
a manually-subscribed stream without teardown leaks.
|
|
30
|
+
|
|
31
|
+
## Testing bar
|
|
32
|
+
|
|
33
|
+
Services ≥ unit-tested per public method (signals, no DOM); components ≥ render +
|
|
34
|
+
one interaction via `TestBed`, happy + error path; guards/interceptors tested in
|
|
35
|
+
isolation against a stubbed `HttpClient`.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<!-- domain:FRONTEND | layer:playbook | ssot:true | updated:{{DATE}} -->
|
|
2
|
+
# Angular App Playbook
|
|
3
|
+
|
|
4
|
+
Purpose: The end-to-end recipe for adding or changing an Angular feature in {{PROJECT_NAME}}.
|
|
5
|
+
Read when: Any task that adds a component, service, route, guard, or interceptor.
|
|
6
|
+
Skip when: Backend/mobile work — see the relevant stack docs.
|
|
7
|
+
Read next: [Angular Engineering Rules](../engineering/angular-rules.md), [Accessibility](../engineering/accessibility.md)
|
|
8
|
+
|
|
9
|
+
> Nav: [Master Index](../00-index.md)
|
|
10
|
+
|
|
11
|
+
## Add a feature (the only sanctioned path)
|
|
12
|
+
|
|
13
|
+
1. **Component** — `src/frontend/src/app/<feature>/<feature>.component.ts`:
|
|
14
|
+
standalone, `ChangeDetectionStrategy.OnPush`, declares its own `imports`.
|
|
15
|
+
Presentation only — it reads signals and emits events.
|
|
16
|
+
2. **Service** — `<feature>.service.ts`: `@Injectable({ providedIn: "root" })`,
|
|
17
|
+
owns state via `signal`/`computed` and side effects via RxJS + `HttpClient`.
|
|
18
|
+
The component never fetches or mutates global state directly.
|
|
19
|
+
3. **Route** — register the component in `app.routes.ts`; lazy-load with
|
|
20
|
+
`loadComponent` once the feature is non-trivial.
|
|
21
|
+
4. **Guard / interceptor** — cross-cutting concerns live under `core/` and are
|
|
22
|
+
provided in `app.config.ts`, never inline in a component.
|
|
23
|
+
5. **Inputs/outputs** — pass data in with typed `input()`, signal changes out
|
|
24
|
+
with `output()`; no two-way mutation of shared state from a child.
|
|
25
|
+
6. **Test** — unit-test the service in isolation (signals, no DOM) +
|
|
26
|
+
component test via `TestBed` (render + interaction, happy + error path).
|
|
27
|
+
7. **Verify** — `cd src/frontend && npm run lint && npm test`.
|
|
28
|
+
|
|
29
|
+
## Global wiring (set once in `app.config.ts`)
|
|
30
|
+
|
|
31
|
+
`provideRouter → provideHttpClient → { provide: ErrorHandler, useClass:
|
|
32
|
+
GlobalErrorHandler }`. Application-wide providers live here so every component
|
|
33
|
+
inherits routing, HTTP, and one error shape.
|
|
34
|
+
|
|
35
|
+
## Anti-patterns
|
|
36
|
+
|
|
37
|
+
- An NgModule (`@NgModule`) — this stack is standalone-only.
|
|
38
|
+
- A component calling `HttpClient` directly — data access belongs in a service.
|
|
39
|
+
- `setTimeout`/manual change detection to "force" a refresh — drive the view
|
|
40
|
+
from a `signal`/`computed` instead.
|
|
41
|
+
- Formatting a raw server error string into the template — the global
|
|
42
|
+
`ErrorHandler` owns logging; the UI shows a generic, mapped message.
|