oh-my-customcodex 0.1.0
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.
- package/LICENSE +21 -0
- package/README.md +327 -0
- package/dist/cli/index.js +32054 -0
- package/dist/index.js +5469 -0
- package/package.json +89 -0
- package/templates/.claude/agents/arch-documenter.md +38 -0
- package/templates/.claude/agents/arch-speckit-agent.md +66 -0
- package/templates/.claude/agents/be-django-expert.md +47 -0
- package/templates/.claude/agents/be-express-expert.md +31 -0
- package/templates/.claude/agents/be-fastapi-expert.md +45 -0
- package/templates/.claude/agents/be-go-backend-expert.md +45 -0
- package/templates/.claude/agents/be-nestjs-expert.md +29 -0
- package/templates/.claude/agents/be-springboot-expert.md +42 -0
- package/templates/.claude/agents/db-alembic-expert.md +73 -0
- package/templates/.claude/agents/db-postgres-expert.md +38 -0
- package/templates/.claude/agents/db-redis-expert.md +38 -0
- package/templates/.claude/agents/db-supabase-expert.md +37 -0
- package/templates/.claude/agents/de-airflow-expert.md +48 -0
- package/templates/.claude/agents/de-dbt-expert.md +36 -0
- package/templates/.claude/agents/de-kafka-expert.md +83 -0
- package/templates/.claude/agents/de-pipeline-expert.md +34 -0
- package/templates/.claude/agents/de-snowflake-expert.md +38 -0
- package/templates/.claude/agents/de-spark-expert.md +38 -0
- package/templates/.claude/agents/fe-design-expert.md +120 -0
- package/templates/.claude/agents/fe-flutter-agent.md +48 -0
- package/templates/.claude/agents/fe-svelte-agent.md +33 -0
- package/templates/.claude/agents/fe-vercel-agent.md +40 -0
- package/templates/.claude/agents/fe-vuejs-agent.md +34 -0
- package/templates/.claude/agents/infra-aws-expert.md +49 -0
- package/templates/.claude/agents/infra-docker-expert.md +49 -0
- package/templates/.claude/agents/lang-golang-expert.md +46 -0
- package/templates/.claude/agents/lang-java21-expert.md +42 -0
- package/templates/.claude/agents/lang-kotlin-expert.md +45 -0
- package/templates/.claude/agents/lang-python-expert.md +45 -0
- package/templates/.claude/agents/lang-rust-expert.md +45 -0
- package/templates/.claude/agents/lang-typescript-expert.md +45 -0
- package/templates/.claude/agents/mgr-claude-code-bible.md +62 -0
- package/templates/.claude/agents/mgr-creator.md +57 -0
- package/templates/.claude/agents/mgr-gitnerd.md +50 -0
- package/templates/.claude/agents/mgr-sauron.md +163 -0
- package/templates/.claude/agents/mgr-supplier.md +39 -0
- package/templates/.claude/agents/mgr-updater.md +40 -0
- package/templates/.claude/agents/qa-engineer.md +36 -0
- package/templates/.claude/agents/qa-planner.md +78 -0
- package/templates/.claude/agents/qa-writer.md +32 -0
- package/templates/.claude/agents/sec-codeql-expert.md +56 -0
- package/templates/.claude/agents/slack-cli-expert.md +98 -0
- package/templates/.claude/agents/souls/lang-golang-expert.soul.md +21 -0
- package/templates/.claude/agents/sys-memory-keeper.md +123 -0
- package/templates/.claude/agents/sys-naggy.md +76 -0
- package/templates/.claude/agents/tool-bun-expert.md +26 -0
- package/templates/.claude/agents/tool-npm-expert.md +31 -0
- package/templates/.claude/agents/tool-optimizer.md +37 -0
- package/templates/.claude/agents/wiki-curator.md +72 -0
- package/templates/.claude/config/required-plugins.json +30 -0
- package/templates/.claude/contexts/dev.md +20 -0
- package/templates/.claude/contexts/ecomode.md +110 -0
- package/templates/.claude/contexts/index.yaml +41 -0
- package/templates/.claude/contexts/research.md +28 -0
- package/templates/.claude/contexts/review.md +23 -0
- package/templates/.claude/hooks/hooks.json +533 -0
- package/templates/.claude/hooks/scripts/adaptive-harness-scan.sh +45 -0
- package/templates/.claude/hooks/scripts/agent-start-recorder.sh +40 -0
- package/templates/.claude/hooks/scripts/agent-teams-advisor.sh +76 -0
- package/templates/.claude/hooks/scripts/audit-log.sh +64 -0
- package/templates/.claude/hooks/scripts/auto-continue-guard.sh +33 -0
- package/templates/.claude/hooks/scripts/content-hash-validator.sh +75 -0
- package/templates/.claude/hooks/scripts/context-budget-advisor.sh +107 -0
- package/templates/.claude/hooks/scripts/cost-cap-advisor.sh +71 -0
- package/templates/.claude/hooks/scripts/cwd-change-detector.sh +36 -0
- package/templates/.claude/hooks/scripts/eval-core-batch-save.sh +46 -0
- package/templates/.claude/hooks/scripts/feedback-collector.sh +92 -0
- package/templates/.claude/hooks/scripts/file-change-validator.sh +26 -0
- package/templates/.claude/hooks/scripts/git-delegation-guard.sh +57 -0
- package/templates/.claude/hooks/scripts/model-escalation-advisor.sh +106 -0
- package/templates/.claude/hooks/scripts/omcodex-auto-update.sh +4 -0
- package/templates/.claude/hooks/scripts/omcustom-auto-update.sh +177 -0
- package/templates/.claude/hooks/scripts/rtk-intercept.sh +77 -0
- package/templates/.claude/hooks/scripts/rule-deletion-guard.sh +60 -0
- package/templates/.claude/hooks/scripts/schema-validator.sh +106 -0
- package/templates/.claude/hooks/scripts/secret-filter.sh +100 -0
- package/templates/.claude/hooks/scripts/session-autofix-prompt.sh +34 -0
- package/templates/.claude/hooks/scripts/session-autofix.sh +146 -0
- package/templates/.claude/hooks/scripts/session-env-check.sh +254 -0
- package/templates/.claude/hooks/scripts/skill-extractor-analyzer.sh +49 -0
- package/templates/.claude/hooks/scripts/stage-blocker.sh +16 -0
- package/templates/.claude/hooks/scripts/stale-todo-scanner.sh +91 -0
- package/templates/.claude/hooks/scripts/stall-detection-advisor.sh +112 -0
- package/templates/.claude/hooks/scripts/stop-console-audit.sh +46 -0
- package/templates/.claude/hooks/scripts/stuck-detector.sh +199 -0
- package/templates/.claude/hooks/scripts/task-outcome-recorder.sh +119 -0
- package/templates/.claude/hooks/scripts/task-state-precompact.sh +58 -0
- package/templates/.claude/hooks/scripts/user-prompt-preprocessor.sh +32 -0
- package/templates/.claude/hooks/skill-count-reminder.sh +34 -0
- package/templates/.claude/install-hooks.sh +100 -0
- package/templates/.claude/ontology/agents.yaml +546 -0
- package/templates/.claude/ontology/graphs/agent-skill.json +102 -0
- package/templates/.claude/ontology/graphs/full-graph.json +629 -0
- package/templates/.claude/ontology/graphs/routing.json +112 -0
- package/templates/.claude/ontology/graphs/skill-rule.json +78 -0
- package/templates/.claude/ontology/rules.yaml +251 -0
- package/templates/.claude/ontology/schema.yaml +144 -0
- package/templates/.claude/ontology/skills.yaml +575 -0
- package/templates/.claude/rules/MAY-optimization.md +42 -0
- package/templates/.claude/rules/MUST-agent-design.md +340 -0
- package/templates/.claude/rules/MUST-agent-identification.md +77 -0
- package/templates/.claude/rules/MUST-agent-teams.md +293 -0
- package/templates/.claude/rules/MUST-completion-verification.md +112 -0
- package/templates/.claude/rules/MUST-continuous-improvement.md +69 -0
- package/templates/.claude/rules/MUST-enforcement-policy.md +50 -0
- package/templates/.claude/rules/MUST-intent-transparency.md +74 -0
- package/templates/.claude/rules/MUST-language-policy.md +28 -0
- package/templates/.claude/rules/MUST-orchestrator-coordination.md +399 -0
- package/templates/.claude/rules/MUST-parallel-execution.md +184 -0
- package/templates/.claude/rules/MUST-permissions.md +32 -0
- package/templates/.claude/rules/MUST-safety.md +23 -0
- package/templates/.claude/rules/MUST-sync-verification.md +145 -0
- package/templates/.claude/rules/MUST-tool-identification.md +97 -0
- package/templates/.claude/rules/SHOULD-ecomode.md +123 -0
- package/templates/.claude/rules/SHOULD-error-handling.md +33 -0
- package/templates/.claude/rules/SHOULD-hud-statusline.md +51 -0
- package/templates/.claude/rules/SHOULD-interaction.md +77 -0
- package/templates/.claude/rules/SHOULD-memory-integration.md +371 -0
- package/templates/.claude/rules/SHOULD-ontology-rag-routing.md +49 -0
- package/templates/.claude/rules/SHOULD-wiki-sync.md +73 -0
- package/templates/.claude/rules/index.yaml +141 -0
- package/templates/.claude/schemas/tool-inputs.json +62 -0
- package/templates/.claude/skills/action-validator/SKILL.md +89 -0
- package/templates/.claude/skills/adaptive-harness/SKILL.md +335 -0
- package/templates/.claude/skills/adversarial-review/SKILL.md +80 -0
- package/templates/.claude/skills/agora/SKILL.md +194 -0
- package/templates/.claude/skills/airflow-best-practices/SKILL.md +94 -0
- package/templates/.claude/skills/alembic-best-practices/SKILL.md +295 -0
- package/templates/.claude/skills/ambiguity-gate/SKILL.md +94 -0
- package/templates/.claude/skills/analysis/SKILL.md +223 -0
- package/templates/.claude/skills/audit-agents/SKILL.md +118 -0
- package/templates/.claude/skills/aws-best-practices/SKILL.md +281 -0
- package/templates/.claude/skills/claude-code-bible/SKILL.md +93 -0
- package/templates/.claude/skills/claude-code-bible/scripts/fetch-docs.js +244 -0
- package/templates/.claude/skills/claude-native/SKILL.md +215 -0
- package/templates/.claude/skills/codex-exec/SKILL.md +206 -0
- package/templates/.claude/skills/codex-exec/scripts/codex-wrapper.cjs +430 -0
- package/templates/.claude/skills/create-agent/SKILL.md +94 -0
- package/templates/.claude/skills/cve-triage/SKILL.md +91 -0
- package/templates/.claude/skills/dag-orchestration/SKILL.md +201 -0
- package/templates/.claude/skills/dbt-best-practices/SKILL.md +55 -0
- package/templates/.claude/skills/de-lead-routing/SKILL.md +230 -0
- package/templates/.claude/skills/deep-plan/SKILL.md +344 -0
- package/templates/.claude/skills/deep-verify/SKILL.md +111 -0
- package/templates/.claude/skills/dev-lead-routing/SKILL.md +161 -0
- package/templates/.claude/skills/dev-refactor/SKILL.md +234 -0
- package/templates/.claude/skills/dev-review/SKILL.md +172 -0
- package/templates/.claude/skills/django-best-practices/SKILL.md +334 -0
- package/templates/.claude/skills/docker-best-practices/SKILL.md +276 -0
- package/templates/.claude/skills/evaluator-optimizer/SKILL.md +421 -0
- package/templates/.claude/skills/fastapi-best-practices/SKILL.md +271 -0
- package/templates/.claude/skills/fix-refs/SKILL.md +109 -0
- package/templates/.claude/skills/flutter-best-practices/SKILL.md +325 -0
- package/templates/.claude/skills/gemini-exec/SKILL.md +215 -0
- package/templates/.claude/skills/gemini-exec/scripts/gemini-wrapper.cjs +485 -0
- package/templates/.claude/skills/go-backend-best-practices/SKILL.md +135 -0
- package/templates/.claude/skills/go-best-practices/SKILL.md +204 -0
- package/templates/.claude/skills/hada-scout/SKILL.md +92 -0
- package/templates/.claude/skills/harness-eval/SKILL.md +95 -0
- package/templates/.claude/skills/harness-synthesizer/SKILL.md +145 -0
- package/templates/.claude/skills/help/SKILL.md +127 -0
- package/templates/.claude/skills/idea/SKILL.md +88 -0
- package/templates/.claude/skills/impeccable-design/SKILL.md +173 -0
- package/templates/.claude/skills/intent-detection/SKILL.md +293 -0
- package/templates/.claude/skills/intent-detection/patterns/agent-triggers.yaml +438 -0
- package/templates/.claude/skills/java21-best-practices/SKILL.md +190 -0
- package/templates/.claude/skills/jinja2-prompts/SKILL.md +86 -0
- package/templates/.claude/skills/kafka-best-practices/SKILL.md +53 -0
- package/templates/.claude/skills/kotlin-best-practices/SKILL.md +257 -0
- package/templates/.claude/skills/lists/SKILL.md +80 -0
- package/templates/.claude/skills/memory-management/SKILL.md +196 -0
- package/templates/.claude/skills/memory-recall/SKILL.md +172 -0
- package/templates/.claude/skills/memory-save/SKILL.md +128 -0
- package/templates/.claude/skills/model-escalation/SKILL.md +62 -0
- package/templates/.claude/skills/monitoring-setup/SKILL.md +215 -0
- package/templates/.claude/skills/multi-model-verification/SKILL.md +130 -0
- package/templates/.claude/skills/npm-audit/SKILL.md +74 -0
- package/templates/.claude/skills/npm-publish/SKILL.md +65 -0
- package/templates/.claude/skills/npm-version/SKILL.md +104 -0
- package/templates/.claude/skills/omcodex-auto-improve/SKILL.md +136 -0
- package/templates/.claude/skills/omcodex-feedback/SKILL.md +205 -0
- package/templates/.claude/skills/omcodex-improve-report/SKILL.md +65 -0
- package/templates/.claude/skills/omcodex-loop/SKILL.md +45 -0
- package/templates/.claude/skills/omcodex-release-notes/SKILL.md +117 -0
- package/templates/.claude/skills/omcodex-takeover/SKILL.md +115 -0
- package/templates/.claude/skills/omcodex-web/SKILL.md +95 -0
- package/templates/.claude/skills/optimize-analyze/SKILL.md +57 -0
- package/templates/.claude/skills/optimize-bundle/SKILL.md +69 -0
- package/templates/.claude/skills/optimize-report/SKILL.md +76 -0
- package/templates/.claude/skills/peer-messaging/SKILL.md +59 -0
- package/templates/.claude/skills/pipeline/SKILL.md +103 -0
- package/templates/.claude/skills/pipeline-architecture-patterns/SKILL.md +84 -0
- package/templates/.claude/skills/pipeline-guards/SKILL.md +173 -0
- package/templates/.claude/skills/post-release-followup/SKILL.md +134 -0
- package/templates/.claude/skills/postgres-best-practices/SKILL.md +67 -0
- package/templates/.claude/skills/pr-auto-improve/SKILL.md +129 -0
- package/templates/.claude/skills/professor-triage/SKILL.md +321 -0
- package/templates/.claude/skills/python-best-practices/SKILL.md +223 -0
- package/templates/.claude/skills/qa-lead-routing/SKILL.md +104 -0
- package/templates/.claude/skills/react-best-practices/SKILL.md +102 -0
- package/templates/.claude/skills/reasoning-sandwich/SKILL.md +64 -0
- package/templates/.claude/skills/redis-best-practices/SKILL.md +84 -0
- package/templates/.claude/skills/release-plan/SKILL.md +207 -0
- package/templates/.claude/skills/research/SKILL.md +493 -0
- package/templates/.claude/skills/result-aggregation/SKILL.md +165 -0
- package/templates/.claude/skills/rtk-exec/SKILL.md +199 -0
- package/templates/.claude/skills/rtk-exec/scripts/rtk-wrapper.cjs +377 -0
- package/templates/.claude/skills/rust-best-practices/SKILL.md +268 -0
- package/templates/.claude/skills/sauron-watch/SKILL.md +239 -0
- package/templates/.claude/skills/scout/SKILL.md +250 -0
- package/templates/.claude/skills/sdd/SKILL.md +24 -0
- package/templates/.claude/skills/sdd-dev/SKILL.md +257 -0
- package/templates/.claude/skills/sdd-development/SKILL.md +24 -0
- package/templates/.claude/skills/secretary-routing/SKILL.md +132 -0
- package/templates/.claude/skills/skill-extractor/SKILL.md +155 -0
- package/templates/.claude/skills/skills-sh-search/SKILL.md +210 -0
- package/templates/.claude/skills/snowflake-best-practices/SKILL.md +66 -0
- package/templates/.claude/skills/spark-best-practices/SKILL.md +53 -0
- package/templates/.claude/skills/springboot-best-practices/SKILL.md +74 -0
- package/templates/.claude/skills/springboot-best-practices/examples/config-properties-example.java +22 -0
- package/templates/.claude/skills/springboot-best-practices/examples/controller-example.java +28 -0
- package/templates/.claude/skills/springboot-best-practices/examples/controller-test-example.java +33 -0
- package/templates/.claude/skills/springboot-best-practices/examples/entity-example.java +22 -0
- package/templates/.claude/skills/springboot-best-practices/examples/exception-handler-example.java +30 -0
- package/templates/.claude/skills/springboot-best-practices/examples/repository-example.java +17 -0
- package/templates/.claude/skills/springboot-best-practices/examples/repository-test-example.java +23 -0
- package/templates/.claude/skills/springboot-best-practices/examples/security-config-example.java +27 -0
- package/templates/.claude/skills/springboot-best-practices/examples/service-example.java +33 -0
- package/templates/.claude/skills/status/SKILL.md +155 -0
- package/templates/.claude/skills/structured-dev-cycle/SKILL.md +200 -0
- package/templates/.claude/skills/stuck-recovery/SKILL.md +80 -0
- package/templates/.claude/skills/supabase-postgres-best-practices/SKILL.md +100 -0
- package/templates/.claude/skills/systematic-debugging/SKILL.md +288 -0
- package/templates/.claude/skills/systematic-debugging/condition-based-waiting-example.ts +278 -0
- package/templates/.claude/skills/systematic-debugging/condition-based-waiting.md +240 -0
- package/templates/.claude/skills/systematic-debugging/defense-in-depth.md +252 -0
- package/templates/.claude/skills/systematic-debugging/find-polluter.sh +147 -0
- package/templates/.claude/skills/systematic-debugging/root-cause-tracing.md +87 -0
- package/templates/.claude/skills/task-decomposition/SKILL.md +197 -0
- package/templates/.claude/skills/typescript-best-practices/SKILL.md +322 -0
- package/templates/.claude/skills/update-docs/SKILL.md +142 -0
- package/templates/.claude/skills/update-external/SKILL.md +169 -0
- package/templates/.claude/skills/vercel-deploy/SKILL.md +75 -0
- package/templates/.claude/skills/web-design-guidelines/SKILL.md +119 -0
- package/templates/.claude/skills/wiki/SKILL.md +426 -0
- package/templates/.claude/skills/wiki-rag/SKILL.md +154 -0
- package/templates/.claude/skills/worker-reviewer-pipeline/SKILL.md +165 -0
- package/templates/.claude/skills/writing-clearly-and-concisely/SKILL.md +66 -0
- package/templates/.claude/statusline.sh +380 -0
- package/templates/.claude/uninstall-hooks.sh +52 -0
- package/templates/.github/workflows/wiki-sync.yml +132 -0
- package/templates/AGENTS.md.en +255 -0
- package/templates/AGENTS.md.ko +255 -0
- package/templates/CLAUDE.md +263 -0
- package/templates/CLAUDE.md.en +256 -0
- package/templates/CLAUDE.md.ko +256 -0
- package/templates/deprecated-files.json +10 -0
- package/templates/guides/agents-md-quality/README.md +110 -0
- package/templates/guides/airflow/README.md +47 -0
- package/templates/guides/alembic/README.md +438 -0
- package/templates/guides/aws/common-patterns.md +169 -0
- package/templates/guides/aws/index.yaml +26 -0
- package/templates/guides/aws/well-architected.md +143 -0
- package/templates/guides/cc-token-saver/README.md +97 -0
- package/templates/guides/claude-code/01-overview.md +42 -0
- package/templates/guides/claude-code/03-tools.md +107 -0
- package/templates/guides/claude-code/04-agent-skills.md +90 -0
- package/templates/guides/claude-code/05-agent-sdk.md +129 -0
- package/templates/guides/claude-code/06-mcp.md +165 -0
- package/templates/guides/claude-code/07-prompt-engineering.md +100 -0
- package/templates/guides/claude-code/08-testing.md +56 -0
- package/templates/guides/claude-code/09-guardrails.md +78 -0
- package/templates/guides/claude-code/10-monitoring.md +87 -0
- package/templates/guides/claude-code/11-sub-agents.md +159 -0
- package/templates/guides/claude-code/12-workflow-patterns.md +182 -0
- package/templates/guides/claude-code/13-cli-flags.md +151 -0
- package/templates/guides/claude-code/index.yaml +61 -0
- package/templates/guides/dbt/README.md +32 -0
- package/templates/guides/django-best-practices/README.md +476 -0
- package/templates/guides/docker/compose-best-practices.md +284 -0
- package/templates/guides/docker/dockerfile-best-practices.md +262 -0
- package/templates/guides/docker/index.yaml +26 -0
- package/templates/guides/drizzle-orm/README.md +69 -0
- package/templates/guides/elements-of-style/elements-of-style.html +2609 -0
- package/templates/guides/fastapi/best-practices.md +232 -0
- package/templates/guides/fastapi/index.yaml +21 -0
- package/templates/guides/flutter/architecture.md +141 -0
- package/templates/guides/flutter/fundamentals.md +119 -0
- package/templates/guides/flutter/index.yaml +44 -0
- package/templates/guides/flutter/performance.md +119 -0
- package/templates/guides/flutter/security.md +120 -0
- package/templates/guides/flutter/state-management.md +144 -0
- package/templates/guides/flutter/testing.md +155 -0
- package/templates/guides/git-worktree-workflow/README.md +138 -0
- package/templates/guides/go-backend/index.yaml +26 -0
- package/templates/guides/go-backend/project-layout.md +243 -0
- package/templates/guides/go-backend/uber-style.md +212 -0
- package/templates/guides/golang/concurrency.md +282 -0
- package/templates/guides/golang/effective-go.md +309 -0
- package/templates/guides/golang/error-handling.md +250 -0
- package/templates/guides/golang/index.yaml +27 -0
- package/templates/guides/hook-data-flow/README.md +135 -0
- package/templates/guides/iceberg/README.md +49 -0
- package/templates/guides/impeccable-design/color-and-contrast.md +278 -0
- package/templates/guides/impeccable-design/index.yaml +12 -0
- package/templates/guides/impeccable-design/motion-design.md +390 -0
- package/templates/guides/impeccable-design/typography.md +386 -0
- package/templates/guides/impeccable-design/ux-writing.md +400 -0
- package/templates/guides/index.yaml +265 -0
- package/templates/guides/java21/index.yaml +29 -0
- package/templates/guides/java21/java-style-guide.md +248 -0
- package/templates/guides/java21/modern-java21.md +303 -0
- package/templates/guides/kafka/README.md +32 -0
- package/templates/guides/kotlin/coding-conventions.md +247 -0
- package/templates/guides/kotlin/idioms.md +234 -0
- package/templates/guides/kotlin/index.yaml +26 -0
- package/templates/guides/multi-model-routing/README.md +101 -0
- package/templates/guides/multi-provider-exec/README.md +83 -0
- package/templates/guides/postgres/README.md +58 -0
- package/templates/guides/python/index.yaml +26 -0
- package/templates/guides/python/pep8-style-guide.md +202 -0
- package/templates/guides/python/zen-of-python.md +79 -0
- package/templates/guides/redis/README.md +50 -0
- package/templates/guides/rust/error-handling.md +262 -0
- package/templates/guides/rust/index.yaml +26 -0
- package/templates/guides/rust/ownership.md +180 -0
- package/templates/guides/skill-bundle-design/README.md +106 -0
- package/templates/guides/slack-cli/README.md +145 -0
- package/templates/guides/snowflake/README.md +32 -0
- package/templates/guides/spark/README.md +32 -0
- package/templates/guides/springboot/best-practices.md +361 -0
- package/templates/guides/springboot/index.yaml +22 -0
- package/templates/guides/supabase-postgres/README.md +32 -0
- package/templates/guides/supabase-postgres/index.yaml +19 -0
- package/templates/guides/typescript/advanced-types.md +225 -0
- package/templates/guides/typescript/index.yaml +26 -0
- package/templates/guides/typescript/type-system.md +219 -0
- package/templates/guides/web-design/accessibility.md +66 -0
- package/templates/guides/web-design/index.yaml +20 -0
- package/templates/guides/web-design/performance.md +102 -0
- package/templates/guides/web-scraping/README.md +926 -0
- package/templates/guides/web-scraping/index.yaml +19 -0
- package/templates/guides/worktree-lifecycle/README.md +104 -0
- package/templates/index.yaml +18 -0
- package/templates/manifest.json +49 -0
- package/templates/workflows/auto-dev.yaml +46 -0
|
@@ -0,0 +1,400 @@
|
|
|
1
|
+
# UX Writing
|
|
2
|
+
|
|
3
|
+
> Reference: Impeccable Design Language — https://github.com/pbakaus/impeccable (Apache 2.0)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Button Labels
|
|
8
|
+
|
|
9
|
+
Buttons are the most frequent point of user action. Vague labels like "OK", "Submit", or "Yes" force users to look back at context to understand what will happen. Specific labels eliminate that cognitive step.
|
|
10
|
+
|
|
11
|
+
### Pattern: verb + object
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
Save changes (not "Submit" or "OK")
|
|
15
|
+
Delete project (not "Confirm" or "Yes")
|
|
16
|
+
Upload photo (not "Continue")
|
|
17
|
+
Send message (not "Done")
|
|
18
|
+
Add team member (not "OK")
|
|
19
|
+
Export as CSV (not "Export")
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Destructive actions
|
|
23
|
+
|
|
24
|
+
Destructive buttons should use "Delete" rather than softer words that understate irreversibility:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
Delete account (not "Remove account" or "Close account")
|
|
28
|
+
Delete 3 files (not "Remove" — include quantity when available)
|
|
29
|
+
Permanently delete (when deletion is irreversible with no recycle bin)
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Include quantities when available
|
|
33
|
+
|
|
34
|
+
When the button's action affects a known number of items, include that count. It confirms what the user is about to do and prevents accidental bulk operations:
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
Delete 3 selected (not "Delete")
|
|
38
|
+
Export 42 records (not "Export")
|
|
39
|
+
Move 7 files (not "Move")
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Confirmation button matching
|
|
43
|
+
|
|
44
|
+
In confirmation dialogs, the confirm button label should match the action label. If the dialog asks "Are you sure you want to delete this project?", the confirm button reads "Delete project" — not "Yes" or "Confirm".
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Error Messages
|
|
49
|
+
|
|
50
|
+
Error messages are the point at which users most need clarity and empathy. A bad error message stops the user completely; a good one helps them recover immediately.
|
|
51
|
+
|
|
52
|
+
### Structure: what + why + how
|
|
53
|
+
|
|
54
|
+
Every error should answer three questions:
|
|
55
|
+
|
|
56
|
+
1. **What** failed: be specific about what went wrong
|
|
57
|
+
2. **Why** it failed: provide the cause (when known)
|
|
58
|
+
3. **How** to fix it: give a concrete next step
|
|
59
|
+
|
|
60
|
+
### Error templates
|
|
61
|
+
|
|
62
|
+
**Format error** (invalid input):
|
|
63
|
+
```
|
|
64
|
+
"[Field] must be [format]. Example: [example]"
|
|
65
|
+
→ "Phone number must be 10 digits. Example: 555-123-4567"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**Missing required data:**
|
|
69
|
+
```
|
|
70
|
+
"[Field] is required to [action]"
|
|
71
|
+
→ "Email address is required to create an account"
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Access denied:**
|
|
75
|
+
```
|
|
76
|
+
"You don't have permission to [action]. [Next step or contact]"
|
|
77
|
+
→ "You don't have permission to delete this project. Ask an admin for access."
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Network error:**
|
|
81
|
+
```
|
|
82
|
+
"[Action] failed — check your internet connection and try again"
|
|
83
|
+
→ "Message not sent — check your internet connection and try again"
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Server error:**
|
|
87
|
+
```
|
|
88
|
+
"Something went wrong on our end. We've been notified and are looking into it. [Retry action]"
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Never blame the user
|
|
92
|
+
|
|
93
|
+
Users are not at fault for errors — the system either failed or the interface didn't set expectations clearly. Frame every error as guidance, not accusation:
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
WRONG: "You entered an invalid email address"
|
|
97
|
+
CORRECT: "That email address format isn't recognized. Check for typos."
|
|
98
|
+
|
|
99
|
+
WRONG: "You must complete all required fields"
|
|
100
|
+
CORRECT: "A few required fields need to be filled in before you can continue."
|
|
101
|
+
|
|
102
|
+
WRONG: "Invalid password"
|
|
103
|
+
CORRECT: "Password must be at least 8 characters and include a number."
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Empty States
|
|
109
|
+
|
|
110
|
+
Empty states are a common missed opportunity. When a list, dashboard, or section has no content, the interface is in a teaching moment: the user is ready to start, but hasn't yet. A good empty state guides them.
|
|
111
|
+
|
|
112
|
+
### Three-part formula
|
|
113
|
+
|
|
114
|
+
1. **Acknowledge**: recognize that nothing is here yet
|
|
115
|
+
2. **Benefit**: explain what this section will do for them once populated
|
|
116
|
+
3. **Next step**: provide a single, clear action to start
|
|
117
|
+
|
|
118
|
+
### Examples
|
|
119
|
+
|
|
120
|
+
**Empty projects list:**
|
|
121
|
+
```
|
|
122
|
+
No projects yet
|
|
123
|
+
Once you create a project, it will appear here with your team's work and activity.
|
|
124
|
+
[Create your first project]
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**Empty search results:**
|
|
128
|
+
```
|
|
129
|
+
No results for "payment gateway"
|
|
130
|
+
Try different keywords, or check if the search term is spelled correctly.
|
|
131
|
+
[Clear search]
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
**Empty notifications:**
|
|
135
|
+
```
|
|
136
|
+
You're all caught up
|
|
137
|
+
New notifications about your projects and team activity will appear here.
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
**Empty recent files:**
|
|
141
|
+
```
|
|
142
|
+
No files opened recently
|
|
143
|
+
Files you open will appear here so you can quickly pick up where you left off.
|
|
144
|
+
[Browse files]
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Empty state is not an error
|
|
148
|
+
|
|
149
|
+
Never style empty states like error messages (red borders, warning icons). They are a normal state. Use a neutral illustration or icon, body-weight text, and a single CTA.
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Voice vs Tone
|
|
154
|
+
|
|
155
|
+
**Voice** is who the product is. It stays consistent across all contexts.
|
|
156
|
+
**Tone** is how the product feels in a specific moment. It adapts to the user's emotional state.
|
|
157
|
+
|
|
158
|
+
### Defining voice
|
|
159
|
+
|
|
160
|
+
Choose 3–5 voice attributes. Each attribute should have an example of what it means and what it does not mean:
|
|
161
|
+
|
|
162
|
+
| Attribute | Sounds like | Does not sound like |
|
|
163
|
+
|-----------|-------------|---------------------|
|
|
164
|
+
| Clear | "Your file is saved" | "The persistence operation completed successfully" |
|
|
165
|
+
| Direct | "Delete this project" | "Would you like to consider deleting this project?" |
|
|
166
|
+
| Warm | "You're all set" | "Operation complete" |
|
|
167
|
+
| Confident | "Your payment is processing" | "We're trying to process your payment" |
|
|
168
|
+
|
|
169
|
+
### Tone by context
|
|
170
|
+
|
|
171
|
+
| Context | Tone | Example |
|
|
172
|
+
|---------|------|---------|
|
|
173
|
+
| Success | Celebratory, brief | "Saved!" / "Project created." |
|
|
174
|
+
| Error | Calm, helpful | "Something went wrong — try again in a moment" |
|
|
175
|
+
| Warning | Matter-of-fact | "This will affect 3 other projects" |
|
|
176
|
+
| Onboarding | Encouraging | "You're ready to invite your team" |
|
|
177
|
+
| Loading | Specific, active | "Syncing your data..." (not "Loading") |
|
|
178
|
+
| Destructive confirmation | Serious, no humor | "This cannot be undone." |
|
|
179
|
+
|
|
180
|
+
### No humor during failures
|
|
181
|
+
|
|
182
|
+
Humor during errors — "Uh oh, spaghetti-o!" — signals the product doesn't take the user's problem seriously. Reserve playful copy for successful states and empty states.
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## Accessibility in Writing
|
|
187
|
+
|
|
188
|
+
### Link text must be self-explanatory
|
|
189
|
+
|
|
190
|
+
Screen readers announce links out of context. "Click here" and "Learn more" are meaningless when read as a list of links.
|
|
191
|
+
|
|
192
|
+
```
|
|
193
|
+
WRONG: "For help, click here"
|
|
194
|
+
CORRECT: "Read the setup guide"
|
|
195
|
+
|
|
196
|
+
WRONG: "Learn more"
|
|
197
|
+
CORRECT: "Learn more about team permissions"
|
|
198
|
+
|
|
199
|
+
WRONG: "See all"
|
|
200
|
+
CORRECT: "See all 24 notifications"
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Alt text for images
|
|
204
|
+
|
|
205
|
+
- Informative images: describe what the image shows and why it matters in context
|
|
206
|
+
- Decorative images: use `alt=""` — do not leave the attribute out, which leaves the filename
|
|
207
|
+
- Icons with meaning: describe the action, not the icon shape
|
|
208
|
+
|
|
209
|
+
```html
|
|
210
|
+
<!-- Informative: describe the content -->
|
|
211
|
+
<img src="chart.png" alt="Revenue grew 40% from Q1 to Q4 2024">
|
|
212
|
+
|
|
213
|
+
<!-- Decorative: empty alt, not missing alt -->
|
|
214
|
+
<img src="divider.png" alt="">
|
|
215
|
+
|
|
216
|
+
<!-- Icon button: describe the action -->
|
|
217
|
+
<button aria-label="Delete project">
|
|
218
|
+
<svg aria-hidden="true">...</svg>
|
|
219
|
+
</button>
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### aria-label for icon-only buttons
|
|
223
|
+
|
|
224
|
+
Icon-only buttons are inaccessible without an `aria-label`. The label describes the action, not the icon:
|
|
225
|
+
|
|
226
|
+
```html
|
|
227
|
+
<!-- WRONG: no accessible name -->
|
|
228
|
+
<button><svg><!-- trash icon --></svg></button>
|
|
229
|
+
|
|
230
|
+
<!-- CORRECT: aria-label describes the action -->
|
|
231
|
+
<button aria-label="Delete comment"><svg aria-hidden="true">...</svg></button>
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Internationalization Preparation
|
|
237
|
+
|
|
238
|
+
UI strings that work in English may break layouts in other languages. Design and write with expansion in mind from the start.
|
|
239
|
+
|
|
240
|
+
### Expansion rates by language
|
|
241
|
+
|
|
242
|
+
| Language | Expansion vs English | Example |
|
|
243
|
+
|----------|---------------------|---------|
|
|
244
|
+
| German | +30% | "Settings" → "Einstellungen" (+60%) |
|
|
245
|
+
| French | +20% | "Submit" → "Envoyer" (similar) |
|
|
246
|
+
| Finnish | +30–40% | Compound nouns grow dramatically |
|
|
247
|
+
| Chinese | -30% | Often more compact than English |
|
|
248
|
+
| Japanese | -10–20% | Kanji is compact |
|
|
249
|
+
| Arabic | +25% | Plus requires RTL layout |
|
|
250
|
+
|
|
251
|
+
### Writing for translatability
|
|
252
|
+
|
|
253
|
+
**Keep numbers and strings separate.** Translators cannot reorder words inside a concatenated string:
|
|
254
|
+
|
|
255
|
+
```
|
|
256
|
+
WRONG: "You have " + count + " new messages"
|
|
257
|
+
(German: "Sie haben " + count + " neue Nachrichten" — position differs)
|
|
258
|
+
|
|
259
|
+
CORRECT: Use ICU message format or template variables:
|
|
260
|
+
"You have {count} new messages"
|
|
261
|
+
→ translator preserves {count} and repositions it naturally
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
**Write full sentences, never fragments.** Fragments are grammatically ambiguous and often untranslatable:
|
|
265
|
+
|
|
266
|
+
```
|
|
267
|
+
WRONG: "Selected: " + itemName (fragment)
|
|
268
|
+
CORRECT: "{itemName} is selected" (complete sentence)
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
**Spell out abbreviations.** Abbreviations rarely translate:
|
|
272
|
+
|
|
273
|
+
```
|
|
274
|
+
WRONG: "3 msg" / "2 proj" / "5 min ago"
|
|
275
|
+
CORRECT: "3 messages" / "2 projects" / "5 minutes ago"
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
**Avoid idioms and metaphors.** "Get the ball rolling", "in the pipeline", "hit the ground running" have no equivalent in most languages.
|
|
279
|
+
|
|
280
|
+
### Layout for expansion
|
|
281
|
+
|
|
282
|
+
Design containers for +30–40% text expansion. Buttons, labels, and navigation items should be tested with longer German or Finnish strings before launch.
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
286
|
+
## Terminology Consistency
|
|
287
|
+
|
|
288
|
+
Using different words for the same concept confuses users and undermines trust. Choose one term and apply it everywhere — in UI labels, error messages, documentation, and support.
|
|
289
|
+
|
|
290
|
+
### Core terminology decisions
|
|
291
|
+
|
|
292
|
+
| Preferred | Never use (for same concept) |
|
|
293
|
+
|-----------|------------------------------|
|
|
294
|
+
| Delete | Remove, Trash, Discard (pick one; "Delete" is explicit) |
|
|
295
|
+
| Settings | Preferences, Options, Configuration |
|
|
296
|
+
| Sign in | Log in, Login (pick one; either is fine, be consistent) |
|
|
297
|
+
| Sign out | Log out, Logout |
|
|
298
|
+
| Plan | Subscription, Tier (unless "Plan" is an industry term in your domain) |
|
|
299
|
+
| Team | Workspace, Organization (unless they are distinct concepts) |
|
|
300
|
+
|
|
301
|
+
### Enforce terminology in reviews
|
|
302
|
+
|
|
303
|
+
Terminology drift happens gradually. Add a terminology check to design and content reviews. Common drift patterns:
|
|
304
|
+
- A new designer uses "Remove" where the system says "Delete"
|
|
305
|
+
- Documentation uses "Log in" while the UI says "Sign in"
|
|
306
|
+
- Error messages use a different word than the button that triggered them
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## Loading States
|
|
311
|
+
|
|
312
|
+
Generic loading copy ("Loading...") is a missed opportunity to maintain the user's sense of progress and context.
|
|
313
|
+
|
|
314
|
+
### Specific loading descriptions
|
|
315
|
+
|
|
316
|
+
```
|
|
317
|
+
WRONG: "Loading..."
|
|
318
|
+
CORRECT: "Loading your projects..."
|
|
319
|
+
|
|
320
|
+
WRONG: "Please wait"
|
|
321
|
+
CORRECT: "Syncing changes..."
|
|
322
|
+
|
|
323
|
+
WRONG: "Processing..."
|
|
324
|
+
CORRECT: "Processing payment..."
|
|
325
|
+
"Generating your report..."
|
|
326
|
+
"Analyzing 3,240 records..."
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
### Multi-step loading
|
|
330
|
+
|
|
331
|
+
For operations with multiple stages, show the current step:
|
|
332
|
+
|
|
333
|
+
```
|
|
334
|
+
Step 1 of 3: Validating your data...
|
|
335
|
+
Step 2 of 3: Uploading files...
|
|
336
|
+
Step 3 of 3: Finalizing your project...
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
## Prefer Undo Over Confirmation Dialogs
|
|
342
|
+
|
|
343
|
+
Confirmation dialogs interrupt workflow and create decision fatigue. For most reversible actions, "Undo" is a better pattern:
|
|
344
|
+
|
|
345
|
+
| Pattern | User experience |
|
|
346
|
+
|---------|----------------|
|
|
347
|
+
| Confirm dialog | Interrupts flow, requires a decision, adds friction |
|
|
348
|
+
| Undo toast | Non-blocking, action is immediate, recovery is available for 5–10 seconds |
|
|
349
|
+
|
|
350
|
+
### When confirmation dialogs are appropriate
|
|
351
|
+
|
|
352
|
+
Use confirmation dialogs only for:
|
|
353
|
+
- Permanently irreversible actions (no recycle bin, no undo)
|
|
354
|
+
- Actions affecting many items (batch delete 500 records)
|
|
355
|
+
- Actions with significant financial or security consequences
|
|
356
|
+
|
|
357
|
+
### Undo toast pattern
|
|
358
|
+
|
|
359
|
+
```
|
|
360
|
+
[Project "Q4 Campaign" deleted] [Undo] ×
|
|
361
|
+
|
|
362
|
+
// Disappears after 5 seconds
|
|
363
|
+
// Undo restores the project
|
|
364
|
+
// × dismisses immediately and commits deletion
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
---
|
|
368
|
+
|
|
369
|
+
## Placeholders Show Format, Not Labels
|
|
370
|
+
|
|
371
|
+
Placeholders disappear when users start typing, making them unsuitable as labels. Once the user is mid-input, they cannot look back at a placeholder to remember what field it was.
|
|
372
|
+
|
|
373
|
+
### Placeholders show example values
|
|
374
|
+
|
|
375
|
+
```
|
|
376
|
+
WRONG: placeholder="Email address" (this is what the label is for)
|
|
377
|
+
CORRECT: placeholder="name@company.com"
|
|
378
|
+
|
|
379
|
+
WRONG: placeholder="Enter your name"
|
|
380
|
+
CORRECT: placeholder="Alex Chen"
|
|
381
|
+
|
|
382
|
+
WRONG: placeholder="Date"
|
|
383
|
+
CORRECT: placeholder="MM/DD/YYYY"
|
|
384
|
+
|
|
385
|
+
WRONG: placeholder="Message"
|
|
386
|
+
CORRECT: placeholder="What would you like to say?"
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
### Always use visible labels
|
|
390
|
+
|
|
391
|
+
Every input must have a visible `<label>` element. Placeholder-as-label is an accessibility failure (no label when filled, WCAG 1.3.1) and a usability failure (users cannot review what they entered without clearing the field).
|
|
392
|
+
|
|
393
|
+
```html
|
|
394
|
+
<!-- CORRECT: label + format hint placeholder -->
|
|
395
|
+
<label for="email">Email address</label>
|
|
396
|
+
<input id="email" type="email" placeholder="name@company.com">
|
|
397
|
+
|
|
398
|
+
<!-- WRONG: placeholder as label -->
|
|
399
|
+
<input type="email" placeholder="Email address">
|
|
400
|
+
```
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
# Guides Index
|
|
2
|
+
|
|
3
|
+
guides:
|
|
4
|
+
# Internal
|
|
5
|
+
- name: claude-code
|
|
6
|
+
description: Codex + OMX and agent development guide
|
|
7
|
+
path: ./claude-code/
|
|
8
|
+
source:
|
|
9
|
+
type: internal
|
|
10
|
+
|
|
11
|
+
# Frontend
|
|
12
|
+
- name: impeccable-design
|
|
13
|
+
description: AI design language reference — typography, color, motion, and UX writing for production-grade UI
|
|
14
|
+
path: ./impeccable-design/
|
|
15
|
+
source:
|
|
16
|
+
type: external
|
|
17
|
+
origin: github
|
|
18
|
+
url: https://github.com/pbakaus/impeccable
|
|
19
|
+
license: Apache-2.0
|
|
20
|
+
|
|
21
|
+
- name: flutter
|
|
22
|
+
description: Flutter/Dart development patterns and best practices
|
|
23
|
+
path: ./flutter/
|
|
24
|
+
source:
|
|
25
|
+
type: external
|
|
26
|
+
origin: flutter.dev
|
|
27
|
+
url: https://docs.flutter.dev/
|
|
28
|
+
|
|
29
|
+
- name: web-design
|
|
30
|
+
description: Web design best practices and accessibility reference
|
|
31
|
+
path: ./web-design/
|
|
32
|
+
source:
|
|
33
|
+
type: external
|
|
34
|
+
origin: github
|
|
35
|
+
url: https://github.com/vercel-labs/agent-skills
|
|
36
|
+
|
|
37
|
+
# Languages
|
|
38
|
+
- name: golang
|
|
39
|
+
description: Go language reference from Effective Go
|
|
40
|
+
path: ./golang/
|
|
41
|
+
source:
|
|
42
|
+
type: external
|
|
43
|
+
origin: go.dev
|
|
44
|
+
url: https://go.dev/doc/effective_go
|
|
45
|
+
|
|
46
|
+
- name: java21
|
|
47
|
+
description: Java 21 language reference and modern feature documentation
|
|
48
|
+
path: ./java21/
|
|
49
|
+
source:
|
|
50
|
+
type: external
|
|
51
|
+
origin: docs.oracle.com
|
|
52
|
+
url: https://docs.oracle.com/en/java/javase/21/
|
|
53
|
+
|
|
54
|
+
- name: python
|
|
55
|
+
description: Python reference from PEP 8 and PEP 20
|
|
56
|
+
path: ./python/
|
|
57
|
+
source:
|
|
58
|
+
type: external
|
|
59
|
+
origin: python.org
|
|
60
|
+
url: https://peps.python.org/pep-0008/
|
|
61
|
+
|
|
62
|
+
- name: rust
|
|
63
|
+
description: Rust reference from The Book and API Guidelines
|
|
64
|
+
path: ./rust/
|
|
65
|
+
source:
|
|
66
|
+
type: external
|
|
67
|
+
origin: rust-lang.org
|
|
68
|
+
url: https://doc.rust-lang.org/book/
|
|
69
|
+
|
|
70
|
+
- name: kotlin
|
|
71
|
+
description: Kotlin reference from JetBrains documentation
|
|
72
|
+
path: ./kotlin/
|
|
73
|
+
source:
|
|
74
|
+
type: external
|
|
75
|
+
origin: kotlinlang.org
|
|
76
|
+
url: https://kotlinlang.org/docs/coding-conventions.html
|
|
77
|
+
|
|
78
|
+
- name: typescript
|
|
79
|
+
description: TypeScript reference from official handbook
|
|
80
|
+
path: ./typescript/
|
|
81
|
+
source:
|
|
82
|
+
type: external
|
|
83
|
+
origin: typescriptlang.org
|
|
84
|
+
url: https://www.typescriptlang.org/docs/handbook/
|
|
85
|
+
|
|
86
|
+
# Backend
|
|
87
|
+
- name: django-best-practices
|
|
88
|
+
description: Django patterns for production-ready Python web applications
|
|
89
|
+
path: ./django-best-practices/
|
|
90
|
+
source:
|
|
91
|
+
type: external
|
|
92
|
+
origin: djangoproject.com
|
|
93
|
+
url: https://docs.djangoproject.com/en/6.0/
|
|
94
|
+
|
|
95
|
+
- name: fastapi
|
|
96
|
+
description: FastAPI framework reference
|
|
97
|
+
path: ./fastapi/
|
|
98
|
+
source:
|
|
99
|
+
type: external
|
|
100
|
+
origin: fastapi.tiangolo.com
|
|
101
|
+
url: https://fastapi.tiangolo.com/
|
|
102
|
+
|
|
103
|
+
- name: springboot
|
|
104
|
+
description: Spring Boot framework reference
|
|
105
|
+
path: ./springboot/
|
|
106
|
+
source:
|
|
107
|
+
type: external
|
|
108
|
+
origin: spring.io
|
|
109
|
+
url: https://docs.spring.io/spring-boot/docs/current/reference/html/
|
|
110
|
+
|
|
111
|
+
- name: go-backend
|
|
112
|
+
description: Go backend development patterns
|
|
113
|
+
path: ./go-backend/
|
|
114
|
+
source:
|
|
115
|
+
type: external
|
|
116
|
+
origin: various
|
|
117
|
+
url: https://github.com/golang-standards/project-layout
|
|
118
|
+
|
|
119
|
+
# Infrastructure
|
|
120
|
+
- name: docker
|
|
121
|
+
description: Docker containerization reference
|
|
122
|
+
path: ./docker/
|
|
123
|
+
source:
|
|
124
|
+
type: external
|
|
125
|
+
origin: docker.com
|
|
126
|
+
url: https://docs.docker.com/
|
|
127
|
+
|
|
128
|
+
- name: aws
|
|
129
|
+
description: AWS cloud architecture reference
|
|
130
|
+
path: ./aws/
|
|
131
|
+
source:
|
|
132
|
+
type: external
|
|
133
|
+
origin: aws.amazon.com
|
|
134
|
+
url: https://docs.aws.amazon.com/wellarchitected/
|
|
135
|
+
|
|
136
|
+
# Data Engineering
|
|
137
|
+
- name: airflow
|
|
138
|
+
description: Apache Airflow DAG development best practices
|
|
139
|
+
path: ./airflow/
|
|
140
|
+
source:
|
|
141
|
+
type: external
|
|
142
|
+
origin: airflow.apache.org
|
|
143
|
+
url: https://airflow.apache.org/docs/
|
|
144
|
+
|
|
145
|
+
- name: dbt
|
|
146
|
+
description: dbt SQL modeling and analytics engineering best practices
|
|
147
|
+
path: ./dbt/
|
|
148
|
+
source:
|
|
149
|
+
type: external
|
|
150
|
+
origin: docs.getdbt.com
|
|
151
|
+
url: https://docs.getdbt.com/
|
|
152
|
+
|
|
153
|
+
- name: kafka
|
|
154
|
+
description: Apache Kafka event streaming best practices
|
|
155
|
+
path: ./kafka/
|
|
156
|
+
source:
|
|
157
|
+
type: external
|
|
158
|
+
origin: kafka.apache.org
|
|
159
|
+
url: https://kafka.apache.org/documentation/
|
|
160
|
+
|
|
161
|
+
- name: spark
|
|
162
|
+
description: Apache Spark distributed data processing best practices
|
|
163
|
+
path: ./spark/
|
|
164
|
+
source:
|
|
165
|
+
type: external
|
|
166
|
+
origin: spark.apache.org
|
|
167
|
+
url: https://spark.apache.org/docs/latest/
|
|
168
|
+
|
|
169
|
+
- name: snowflake
|
|
170
|
+
description: Snowflake cloud data warehouse best practices
|
|
171
|
+
path: ./snowflake/
|
|
172
|
+
source:
|
|
173
|
+
type: external
|
|
174
|
+
origin: docs.snowflake.com
|
|
175
|
+
url: https://docs.snowflake.com/
|
|
176
|
+
|
|
177
|
+
- name: iceberg
|
|
178
|
+
description: Apache Iceberg open table format best practices
|
|
179
|
+
path: ./iceberg/
|
|
180
|
+
source:
|
|
181
|
+
type: external
|
|
182
|
+
origin: iceberg.apache.org
|
|
183
|
+
url: https://iceberg.apache.org/docs/latest/
|
|
184
|
+
|
|
185
|
+
# Database
|
|
186
|
+
- name: alembic
|
|
187
|
+
description: Alembic database migration framework for SQLAlchemy
|
|
188
|
+
path: ./alembic/
|
|
189
|
+
source:
|
|
190
|
+
type: external
|
|
191
|
+
origin: alembic.sqlalchemy.org
|
|
192
|
+
url: https://alembic.sqlalchemy.org/en/latest/
|
|
193
|
+
|
|
194
|
+
- name: supabase-postgres
|
|
195
|
+
description: Supabase and PostgreSQL best practices reference
|
|
196
|
+
path: ./supabase-postgres/
|
|
197
|
+
source:
|
|
198
|
+
type: external
|
|
199
|
+
origin: github
|
|
200
|
+
url: https://github.com/supabase/agent-skills
|
|
201
|
+
|
|
202
|
+
- name: postgres
|
|
203
|
+
description: PostgreSQL database administration and PG-specific SQL patterns
|
|
204
|
+
path: ./postgres/
|
|
205
|
+
source:
|
|
206
|
+
type: external
|
|
207
|
+
origin: postgresql.org
|
|
208
|
+
url: https://www.postgresql.org/docs/current/
|
|
209
|
+
|
|
210
|
+
- name: redis
|
|
211
|
+
description: Redis in-memory data store best practices and command patterns
|
|
212
|
+
path: ./redis/
|
|
213
|
+
source:
|
|
214
|
+
type: external
|
|
215
|
+
origin: redis.io
|
|
216
|
+
url: https://redis.io/docs/
|
|
217
|
+
|
|
218
|
+
# Git
|
|
219
|
+
- name: git-worktree-workflow
|
|
220
|
+
description: Git worktree workflow for parallel branch development
|
|
221
|
+
path: ./git-worktree-workflow/
|
|
222
|
+
source:
|
|
223
|
+
type: internal
|
|
224
|
+
|
|
225
|
+
# Architecture
|
|
226
|
+
- name: skill-bundle-design
|
|
227
|
+
description: Domain skill bundle design patterns for Author/Test/Troubleshoot tri-pattern
|
|
228
|
+
path: ./skill-bundle-design/
|
|
229
|
+
source:
|
|
230
|
+
type: internal
|
|
231
|
+
|
|
232
|
+
# Writing
|
|
233
|
+
- name: elements-of-style
|
|
234
|
+
description: The Elements of Style writing clarity guidelines
|
|
235
|
+
path: ./elements-of-style/
|
|
236
|
+
source:
|
|
237
|
+
type: external
|
|
238
|
+
origin: public-domain
|
|
239
|
+
url: https://www.gutenberg.org/ebooks/37134
|
|
240
|
+
|
|
241
|
+
# Web Scraping
|
|
242
|
+
- name: web-scraping
|
|
243
|
+
description: BeautifulSoup and Playwright patterns for reliable web scraping and government site parsing
|
|
244
|
+
path: ./web-scraping/
|
|
245
|
+
source:
|
|
246
|
+
type: internal
|
|
247
|
+
|
|
248
|
+
# Agent Operations
|
|
249
|
+
- name: worktree-lifecycle
|
|
250
|
+
description: Worktree lifecycle automation aliases (agent-spin/merge/clean) for AI agent workflows
|
|
251
|
+
path: ./worktree-lifecycle/
|
|
252
|
+
source:
|
|
253
|
+
type: internal
|
|
254
|
+
|
|
255
|
+
- name: multi-model-routing
|
|
256
|
+
description: Role-based model selection strategy for AI agent workflows
|
|
257
|
+
path: ./multi-model-routing/
|
|
258
|
+
source:
|
|
259
|
+
type: internal
|
|
260
|
+
|
|
261
|
+
- name: agents-md-quality
|
|
262
|
+
description: Agent definition quality standards adapted from ETH Zurich research
|
|
263
|
+
path: ./agents-md-quality/
|
|
264
|
+
source:
|
|
265
|
+
type: internal
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Java 21 Guide
|
|
2
|
+
|
|
3
|
+
metadata:
|
|
4
|
+
name: java21
|
|
5
|
+
description: Java 21 language reference and modern feature documentation
|
|
6
|
+
|
|
7
|
+
source:
|
|
8
|
+
type: external
|
|
9
|
+
origin: docs.oracle.com
|
|
10
|
+
urls:
|
|
11
|
+
- https://docs.oracle.com/en/java/javase/21/
|
|
12
|
+
- https://openjdk.org/projects/loom/
|
|
13
|
+
- https://openjdk.org/jeps/440
|
|
14
|
+
- https://openjdk.org/jeps/441
|
|
15
|
+
- https://openjdk.org/jeps/444
|
|
16
|
+
- https://google.github.io/styleguide/javaguide.html
|
|
17
|
+
last_fetched: "2026-03-11"
|
|
18
|
+
|
|
19
|
+
documents:
|
|
20
|
+
- name: modern-java21
|
|
21
|
+
path: ./modern-java21.md
|
|
22
|
+
description: Java 21 modern features (Virtual Threads, Pattern Matching, Records, Sealed Classes)
|
|
23
|
+
|
|
24
|
+
- name: java-style-guide
|
|
25
|
+
path: ./java-style-guide.md
|
|
26
|
+
description: Google Java Style Guide conventions
|
|
27
|
+
|
|
28
|
+
used_by:
|
|
29
|
+
- lang-java21-expert
|