@litfamily/litgrok 1.0.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/.grok/agents/litgrok-executor.md +33 -0
- package/.grok/agents/litgrok-korean-prose-editor.md +32 -0
- package/.grok/agents/litgrok-korean-style-analyzer.md +30 -0
- package/.grok/agents/litgrok-librarian-researcher.md +31 -0
- package/.grok/agents/litgrok-meaning-preservation-auditor.md +30 -0
- package/.grok/agents/litgrok-native-flow-reviewer.md +30 -0
- package/.grok/agents/litgrok-planner.md +31 -0
- package/.grok/agents/litgrok-polish-orchestrator.md +30 -0
- package/.grok/agents/litgrok-qa-runner.md +33 -0
- package/.grok/agents/litgrok-quality-reviewer.md +33 -0
- package/.grok/agents/litgrok-verifier.md +32 -0
- package/.grok/hooks/deliverable-hedge-guard.json +16 -0
- package/.grok/hooks/deliverable-hedge-guard.mjs +148 -0
- package/.grok/hooks/lit-mark.mjs +142 -0
- package/.grok/hooks/plan-gate.mjs +81 -0
- package/.grok/hooks/post-compact.json +15 -0
- package/.grok/hooks/post-compact.mjs +6 -0
- package/.grok/hooks/post-tool-use-failure.json +15 -0
- package/.grok/hooks/post-tool-use-failure.mjs +6 -0
- package/.grok/hooks/post-tool-use.json +16 -0
- package/.grok/hooks/post-tool-use.mjs +7 -0
- package/.grok/hooks/pre-compact.json +15 -0
- package/.grok/hooks/pre-compact.mjs +6 -0
- package/.grok/hooks/record-passive-event.mjs +198 -0
- package/.grok/hooks/session-start.json +15 -0
- package/.grok/hooks/session-start.mjs +37 -0
- package/.grok/hooks/stop-failure.json +15 -0
- package/.grok/hooks/stop-failure.mjs +6 -0
- package/.grok/hooks/stop.json +15 -0
- package/.grok/hooks/stop.mjs +36 -0
- package/.grok/hooks/subagent-start.json +15 -0
- package/.grok/hooks/subagent-start.mjs +6 -0
- package/.grok/hooks/subagent-stop.json +15 -0
- package/.grok/hooks/subagent-stop.mjs +6 -0
- package/.grok/hooks/user-prompt-submit.json +15 -0
- package/.grok/hooks/user-prompt-submit.mjs +7 -0
- package/.grok/rules/00-litgrok.md +152 -0
- package/.grok/skills/autoconference/LICENSE +21 -0
- package/.grok/skills/autoconference/PROVENANCE.md +23 -0
- package/.grok/skills/autoconference/SKILL.md +140 -0
- package/.grok/skills/autoconference/assets/conference_template.md +76 -0
- package/.grok/skills/autoconference/assets/report_template.md +56 -0
- package/.grok/skills/autoconference/assets/synthesis_template.md +40 -0
- package/.grok/skills/autoconference/references/_canonical-corpus/manifest.json +138 -0
- package/.grok/skills/autoconference/references/agent-prompts.md +30 -0
- package/.grok/skills/autoconference/references/conference-protocol.md +21 -0
- package/.grok/skills/autoconference/references/core-principles.md +13 -0
- package/.grok/skills/autoconference/references/family-contract.md +26 -0
- package/.grok/skills/autoconference/references/modes/analyze.md +11 -0
- package/.grok/skills/autoconference/references/modes/core/convergence-guide.md +41 -0
- package/.grok/skills/autoconference/references/modes/core/crash-recovery.md +11 -0
- package/.grok/skills/autoconference/references/modes/core.md +26 -0
- package/.grok/skills/autoconference/references/modes/debate.md +11 -0
- package/.grok/skills/autoconference/references/modes/plan.md +12 -0
- package/.grok/skills/autoconference/references/modes/resume.md +11 -0
- package/.grok/skills/autoconference/references/modes/ship.md +11 -0
- package/.grok/skills/autoconference/references/modes/survey.md +11 -0
- package/.grok/skills/autoconference/references/results-logging.md +12 -0
- package/.grok/skills/autoconference/references/visualization-guide.md +10 -0
- package/.grok/skills/autoconference/scripts/init_conference.py +646 -0
- package/.grok/skills/autoconference/scripts/verify-canonical-corpus.mjs +177 -0
- package/.grok/skills/autoconference/templates/code-performance.md +59 -0
- package/.grok/skills/autoconference/templates/debate-mode.md +50 -0
- package/.grok/skills/autoconference/templates/prompt-optimization.md +58 -0
- package/.grok/skills/autoconference/templates/quick-conference.md +48 -0
- package/.grok/skills/autoconference/templates/research-synthesis.md +56 -0
- package/.grok/skills/autoconference/templates/survey-mode.md +63 -0
- package/.grok/skills/autoresearch/LICENSE +21 -0
- package/.grok/skills/autoresearch/PROVENANCE.md +22 -0
- package/.grok/skills/autoresearch/SKILL.md +149 -0
- package/.grok/skills/autoresearch/assets/report_template.md +52 -0
- package/.grok/skills/autoresearch/assets/research_template.md +38 -0
- package/.grok/skills/autoresearch/assets/results_template.tsv +2 -0
- package/.grok/skills/autoresearch/references/_canonical-corpus/manifest.json +148 -0
- package/.grok/skills/autoresearch/references/core-principles.md +16 -0
- package/.grok/skills/autoresearch/references/family-contract.md +36 -0
- package/.grok/skills/autoresearch/references/modes/core/evaluator-contract.md +12 -0
- package/.grok/skills/autoresearch/references/modes/core/stuck-detection.md +11 -0
- package/.grok/skills/autoresearch/references/modes/core.md +21 -0
- package/.grok/skills/autoresearch/references/modes/debug/investigation-techniques.md +11 -0
- package/.grok/skills/autoresearch/references/modes/debug.md +11 -0
- package/.grok/skills/autoresearch/references/modes/fix.md +11 -0
- package/.grok/skills/autoresearch/references/modes/learn.md +11 -0
- package/.grok/skills/autoresearch/references/modes/plan.md +14 -0
- package/.grok/skills/autoresearch/references/modes/predict/persona-templates.md +11 -0
- package/.grok/skills/autoresearch/references/modes/predict.md +11 -0
- package/.grok/skills/autoresearch/references/modes/reason.md +11 -0
- package/.grok/skills/autoresearch/references/modes/scenario/dimensions.md +11 -0
- package/.grok/skills/autoresearch/references/modes/scenario.md +11 -0
- package/.grok/skills/autoresearch/references/modes/security/owasp-checklist.md +11 -0
- package/.grok/skills/autoresearch/references/modes/security/stride-model.md +11 -0
- package/.grok/skills/autoresearch/references/modes/security.md +12 -0
- package/.grok/skills/autoresearch/references/modes/ship/type-checklists.md +12 -0
- package/.grok/skills/autoresearch/references/modes/ship.md +11 -0
- package/.grok/skills/autoresearch/references/results-logging.md +12 -0
- package/.grok/skills/autoresearch/references/visualization-guide.md +24 -0
- package/.grok/skills/autoresearch/scripts/init_research.py +391 -0
- package/.grok/skills/autoresearch/scripts/style_presets.py +123 -0
- package/.grok/skills/autoresearch/scripts/verify-canonical-corpus.mjs +179 -0
- package/.grok/skills/browser-drive/SKILL.md +194 -0
- package/.grok/skills/browser-drive/references/snapshot-act-loop.md +61 -0
- package/.grok/skills/comment-checker/SKILL.md +194 -0
- package/.grok/skills/debugging/SKILL.md +82 -0
- package/.grok/skills/debugging/references/methodology/00-setup.md +108 -0
- package/.grok/skills/debugging/references/methodology/02-investigate.md +126 -0
- package/.grok/skills/debugging/references/methodology/04-oracle-triple.md +106 -0
- package/.grok/skills/debugging/references/methodology/05-escalate.md +69 -0
- package/.grok/skills/debugging/references/methodology/06-fix.md +116 -0
- package/.grok/skills/debugging/references/methodology/08-qa.md +94 -0
- package/.grok/skills/debugging/references/methodology/09-cleanup.md +164 -0
- package/.grok/skills/debugging/references/methodology/partial-runtime-evidence.md +228 -0
- package/.grok/skills/debugging/references/post-tool-use-failure-taxonomy.md +55 -0
- package/.grok/skills/debugging/references/reproduction-recipes.md +182 -0
- package/.grok/skills/debugging/references/runtimes/bundled-js-binary.md +415 -0
- package/.grok/skills/debugging/references/runtimes/go.md +252 -0
- package/.grok/skills/debugging/references/runtimes/native-binary.md +484 -0
- package/.grok/skills/debugging/references/runtimes/node.md +260 -0
- package/.grok/skills/debugging/references/runtimes/python.md +248 -0
- package/.grok/skills/debugging/references/runtimes/rust.md +234 -0
- package/.grok/skills/debugging/references/tools/ghidra.md +212 -0
- package/.grok/skills/debugging/references/tools/playwright-cli.md +194 -0
- package/.grok/skills/debugging/references/tools/pwndbg.md +263 -0
- package/.grok/skills/debugging/references/tools/pwntools.md +265 -0
- package/.grok/skills/deep-interview/SKILL.md +216 -0
- package/.grok/skills/frontend-ui-ux/LICENSE +21 -0
- package/.grok/skills/frontend-ui-ux/PROVENANCE.json +38 -0
- package/.grok/skills/frontend-ui-ux/SKILL.md +58 -0
- package/.grok/skills/frontend-ui-ux/SOURCE-MANIFEST.json +1060 -0
- package/.grok/skills/frontend-ui-ux/THIRD-PARTY-NOTICE.txt +14 -0
- package/.grok/skills/frontend-ui-ux/data/design-intelligence.json +1 -0
- package/.grok/skills/frontend-ui-ux/references/_canonical-corpus/legal/frontend-ATTRIBUTION.md +217 -0
- package/.grok/skills/frontend-ui-ux/references/_canonical-corpus/legal/frontend-LICENSE-Apache-2.0.txt +201 -0
- package/.grok/skills/frontend-ui-ux/references/_canonical-corpus/legal/root-LICENSE +21 -0
- package/.grok/skills/frontend-ui-ux/references/_canonical-corpus/manifest.json +873 -0
- package/.grok/skills/frontend-ui-ux/references/adaptive-layout.md +92 -0
- package/.grok/skills/frontend-ui-ux/references/brand-and-imagery.md +93 -0
- package/.grok/skills/frontend-ui-ux/references/complete-contract.md +557 -0
- package/.grok/skills/frontend-ui-ux/references/composition.md +85 -0
- package/.grok/skills/frontend-ui-ux/references/creative-directions.md +80 -0
- package/.grok/skills/frontend-ui-ux/references/design/README.md +248 -0
- package/.grok/skills/frontend-ui-ux/references/design/_INDEX.md +191 -0
- package/.grok/skills/frontend-ui-ux/references/design/airbnb.md +393 -0
- package/.grok/skills/frontend-ui-ux/references/design/airtable.md +92 -0
- package/.grok/skills/frontend-ui-ux/references/design/apple.md +250 -0
- package/.grok/skills/frontend-ui-ux/references/design/aside.md +209 -0
- package/.grok/skills/frontend-ui-ux/references/design/binance.md +348 -0
- package/.grok/skills/frontend-ui-ux/references/design/bmw.md +183 -0
- package/.grok/skills/frontend-ui-ux/references/design/brutalist-skill.md +92 -0
- package/.grok/skills/frontend-ui-ux/references/design/bugatti.md +271 -0
- package/.grok/skills/frontend-ui-ux/references/design/cal.md +262 -0
- package/.grok/skills/frontend-ui-ux/references/design/claude.md +315 -0
- package/.grok/skills/frontend-ui-ux/references/design/clay.md +307 -0
- package/.grok/skills/frontend-ui-ux/references/design/clickhouse.md +284 -0
- package/.grok/skills/frontend-ui-ux/references/design/clone-from-url.md +65 -0
- package/.grok/skills/frontend-ui-ux/references/design/cohere.md +269 -0
- package/.grok/skills/frontend-ui-ux/references/design/coinbase.md +132 -0
- package/.grok/skills/frontend-ui-ux/references/design/composio.md +310 -0
- package/.grok/skills/frontend-ui-ux/references/design/cursor.md +312 -0
- package/.grok/skills/frontend-ui-ux/references/design/design-system-architecture.md +244 -0
- package/.grok/skills/frontend-ui-ux/references/design/elevenlabs.md +268 -0
- package/.grok/skills/frontend-ui-ux/references/design/expo.md +284 -0
- package/.grok/skills/frontend-ui-ux/references/design/ferrari.md +317 -0
- package/.grok/skills/frontend-ui-ux/references/design/figma.md +223 -0
- package/.grok/skills/frontend-ui-ux/references/design/framer.md +249 -0
- package/.grok/skills/frontend-ui-ux/references/design/gpt-tasteskill.md +74 -0
- package/.grok/skills/frontend-ui-ux/references/design/hashicorp.md +281 -0
- package/.grok/skills/frontend-ui-ux/references/design/ibm.md +335 -0
- package/.grok/skills/frontend-ui-ux/references/design/image-to-code-skill.md +1228 -0
- package/.grok/skills/frontend-ui-ux/references/design/imagegen-brandkit.md +798 -0
- package/.grok/skills/frontend-ui-ux/references/design/imagegen-frontend-mobile.md +1465 -0
- package/.grok/skills/frontend-ui-ux/references/design/imagegen-frontend-web.md +987 -0
- package/.grok/skills/frontend-ui-ux/references/design/intercom.md +149 -0
- package/.grok/skills/frontend-ui-ux/references/design/kraken.md +128 -0
- package/.grok/skills/frontend-ui-ux/references/design/lamborghini.md +291 -0
- package/.grok/skills/frontend-ui-ux/references/design/layout-skill.md +107 -0
- package/.grok/skills/frontend-ui-ux/references/design/lazyweb.md +77 -0
- package/.grok/skills/frontend-ui-ux/references/design/linear.app.md +370 -0
- package/.grok/skills/frontend-ui-ux/references/design/lovable.md +301 -0
- package/.grok/skills/frontend-ui-ux/references/design/mastercard.md +368 -0
- package/.grok/skills/frontend-ui-ux/references/design/meta.md +369 -0
- package/.grok/skills/frontend-ui-ux/references/design/minimalist-skill.md +85 -0
- package/.grok/skills/frontend-ui-ux/references/design/minimax.md +260 -0
- package/.grok/skills/frontend-ui-ux/references/design/mintlify.md +329 -0
- package/.grok/skills/frontend-ui-ux/references/design/miro.md +111 -0
- package/.grok/skills/frontend-ui-ux/references/design/mistral.ai.md +264 -0
- package/.grok/skills/frontend-ui-ux/references/design/mongodb.md +269 -0
- package/.grok/skills/frontend-ui-ux/references/design/nike.md +366 -0
- package/.grok/skills/frontend-ui-ux/references/design/notion.md +312 -0
- package/.grok/skills/frontend-ui-ux/references/design/nvidia.md +296 -0
- package/.grok/skills/frontend-ui-ux/references/design/ollama.md +270 -0
- package/.grok/skills/frontend-ui-ux/references/design/opencode.ai.md +284 -0
- package/.grok/skills/frontend-ui-ux/references/design/output-skill.md +49 -0
- package/.grok/skills/frontend-ui-ux/references/design/pinterest.md +233 -0
- package/.grok/skills/frontend-ui-ux/references/design/playstation.md +367 -0
- package/.grok/skills/frontend-ui-ux/references/design/posthog.md +259 -0
- package/.grok/skills/frontend-ui-ux/references/design/raycast.md +271 -0
- package/.grok/skills/frontend-ui-ux/references/design/react-dev-tooling-skill.md +230 -0
- package/.grok/skills/frontend-ui-ux/references/design/redesign-skill.md +178 -0
- package/.grok/skills/frontend-ui-ux/references/design/renault.md +314 -0
- package/.grok/skills/frontend-ui-ux/references/design/replicate.md +264 -0
- package/.grok/skills/frontend-ui-ux/references/design/resend.md +306 -0
- package/.grok/skills/frontend-ui-ux/references/design/revolut.md +188 -0
- package/.grok/skills/frontend-ui-ux/references/design/runwayml.md +247 -0
- package/.grok/skills/frontend-ui-ux/references/design/sanity.md +360 -0
- package/.grok/skills/frontend-ui-ux/references/design/sentry.md +265 -0
- package/.grok/skills/frontend-ui-ux/references/design/shopify.md +353 -0
- package/.grok/skills/frontend-ui-ux/references/design/soft-skill.md +98 -0
- package/.grok/skills/frontend-ui-ux/references/design/spacex.md +197 -0
- package/.grok/skills/frontend-ui-ux/references/design/spotify.md +249 -0
- package/.grok/skills/frontend-ui-ux/references/design/starbucks.md +583 -0
- package/.grok/skills/frontend-ui-ux/references/design/stitch-design-example.md +121 -0
- package/.grok/skills/frontend-ui-ux/references/design/stitch-skill.md +184 -0
- package/.grok/skills/frontend-ui-ux/references/design/stripe.md +325 -0
- package/.grok/skills/frontend-ui-ux/references/design/supabase.md +258 -0
- package/.grok/skills/frontend-ui-ux/references/design/superhuman.md +255 -0
- package/.grok/skills/frontend-ui-ux/references/design/taste-skill.md +1206 -0
- package/.grok/skills/frontend-ui-ux/references/design/tesla.md +289 -0
- package/.grok/skills/frontend-ui-ux/references/design/theverge.md +342 -0
- package/.grok/skills/frontend-ui-ux/references/design/together.ai.md +266 -0
- package/.grok/skills/frontend-ui-ux/references/design/uber.md +298 -0
- package/.grok/skills/frontend-ui-ux/references/design/vercel.md +313 -0
- package/.grok/skills/frontend-ui-ux/references/design/vodafone.md +426 -0
- package/.grok/skills/frontend-ui-ux/references/design/voltagent.md +326 -0
- package/.grok/skills/frontend-ui-ux/references/design/warp.md +256 -0
- package/.grok/skills/frontend-ui-ux/references/design/webflow.md +95 -0
- package/.grok/skills/frontend-ui-ux/references/design/wired.md +281 -0
- package/.grok/skills/frontend-ui-ux/references/design/wise.md +176 -0
- package/.grok/skills/frontend-ui-ux/references/design/x.ai.md +260 -0
- package/.grok/skills/frontend-ui-ux/references/design/zapier.md +331 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/EVIDENCE.md +97 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/README.md +48 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/UPSTREAM.md +80 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/lane-a-direction.md +64 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/lane-b-execution.md +65 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/lane-c-review.md +65 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/lane-d-memory.md +83 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/orchestration.md +80 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/routing.md +79 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/LICENSE +21 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/agents/accessibility-reviewer.md +83 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/agents/content-writer.md +132 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/agents/design-builder.md +109 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/agents/design-critic.md +89 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/agents/design-lead.md +113 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/agents/design-scout.md +78 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/agents/design-strategist.md +121 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/agents/heuristic-evaluator.md +268 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/agents/inspiration-scout.md +107 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/agents/motion-designer.md +120 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/accessible-content/reference.md +101 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/adaptive-interfaces/reference.md +109 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/cognitive-accessibility/reference.md +107 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/design-debate/reference.md +199 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/design-debt-tracker/reference.md +174 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/design-handoff/reference.md +125 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/design-md/reference.md +106 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/design-retrospective/reference.md +266 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/design-review/reference.md +123 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/design-system-alignment/reference.md +120 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/designpowers-critique/reference.md +164 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/heuristic-evaluation/reference.md +85 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/inclusive-personas/reference.md +98 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/inspiration-scouting/reference.md +165 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/interaction-design/reference.md +122 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/motion-choreography/reference.md +81 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/research-planning/reference.md +96 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/responsive-patterns/reference.md +77 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/synthetic-user-testing/reference.md +192 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/taste-feedback/reference.md +165 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/taste-report/reference.md +78 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/token-architecture/reference.md +75 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/ui-composition/reference.md +117 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/usability-testing/reference.md +78 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/verification-before-shipping/reference.md +125 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/voice-and-tone/reference.md +79 -0
- package/.grok/skills/frontend-ui-ux/references/designpowers/vendor/skills/writing-design-plans/reference.md +119 -0
- package/.grok/skills/frontend-ui-ux/references/evidence-review.md +126 -0
- package/.grok/skills/frontend-ui-ux/references/implementation-platforms.md +109 -0
- package/.grok/skills/frontend-ui-ux/references/inclusive-interface.md +92 -0
- package/.grok/skills/frontend-ui-ux/references/interaction-motion.md +101 -0
- package/.grok/skills/frontend-ui-ux/references/operating-lanes.md +92 -0
- package/.grok/skills/frontend-ui-ux/references/perfection/README.md +160 -0
- package/.grok/skills/frontend-ui-ux/references/perfection/react-perf-tooling.md +127 -0
- package/.grok/skills/frontend-ui-ux/references/performance-delivery.md +93 -0
- package/.grok/skills/frontend-ui-ux/references/product-direction.md +84 -0
- package/.grok/skills/frontend-ui-ux/references/redesign-playbook.md +97 -0
- package/.grok/skills/frontend-ui-ux/references/system-foundations.md +84 -0
- package/.grok/skills/frontend-ui-ux/references/taste-direction.md +86 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/README.md +659 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/charts.csv +26 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/colors.csv +162 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/icons.csv +106 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/landing.csv +35 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/products.csv +162 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/react-performance.csv +45 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/astro.csv +54 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/flutter.csv +53 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/html-tailwind.csv +56 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/jetpack-compose.csv +53 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/nextjs.csv +53 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/nuxt-ui.csv +51 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/nuxtjs.csv +59 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/react-native.csv +52 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/react.csv +54 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/shadcn.csv +61 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/svelte.csv +54 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/swiftui.csv +51 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/stacks/vue.csv +50 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/styles.csv +85 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/typography.csv +74 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/ui-reasoning.csv +162 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/ux-guidelines.csv +100 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/data/web-interface.csv +31 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/scripts/core.py +262 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/scripts/design_system.py +1148 -0
- package/.grok/skills/frontend-ui-ux/references/ui-ux-db/scripts/search.py +114 -0
- package/.grok/skills/frontend-ui-ux/references/visual-language.md +84 -0
- package/.grok/skills/frontend-ui-ux/references/visual-reconstruction.md +97 -0
- package/.grok/skills/frontend-ui-ux/schemas/design-contract-v1alpha1.schema.json +306 -0
- package/.grok/skills/frontend-ui-ux/schemas/design-contract-v1beta1.schema.json +291 -0
- package/.grok/skills/frontend-ui-ux/schemas/design-contract-v1beta2.schema.json +311 -0
- package/.grok/skills/frontend-ui-ux/scripts/design-contract-format.mjs +286 -0
- package/.grok/skills/frontend-ui-ux/scripts/design-contract-inventory-rules.mjs +354 -0
- package/.grok/skills/frontend-ui-ux/scripts/design-contract-rules.mjs +361 -0
- package/.grok/skills/frontend-ui-ux/scripts/design-contract-surface-rules.mjs +313 -0
- package/.grok/skills/frontend-ui-ux/scripts/design-data.mjs +68 -0
- package/.grok/skills/frontend-ui-ux/scripts/errors.mjs +12 -0
- package/.grok/skills/frontend-ui-ux/scripts/import-design-intelligence.mjs +124 -0
- package/.grok/skills/frontend-ui-ux/scripts/json-boundary.mjs +63 -0
- package/.grok/skills/frontend-ui-ux/scripts/query-design-intelligence.mjs +106 -0
- package/.grok/skills/frontend-ui-ux/scripts/search.mjs +43 -0
- package/.grok/skills/frontend-ui-ux/scripts/source-replay.mjs +153 -0
- package/.grok/skills/frontend-ui-ux/scripts/strict-json.mjs +143 -0
- package/.grok/skills/frontend-ui-ux/scripts/validate-design-contract.mjs +52 -0
- package/.grok/skills/frontend-ui-ux/scripts/verify-canonical-corpus.mjs +214 -0
- package/.grok/skills/lit-burnoff/SKILL.md +175 -0
- package/.grok/skills/lit-burnoff-file/SKILL.md +67 -0
- package/.grok/skills/lit-code/SKILL.md +531 -0
- package/.grok/skills/lit-code/references/go/README.md +90 -0
- package/.grok/skills/lit-code/references/go/backend-stack.md +641 -0
- package/.grok/skills/lit-code/references/go/bootstrap.md +328 -0
- package/.grok/skills/lit-code/references/go/bubbletea-v2.md +360 -0
- package/.grok/skills/lit-code/references/go/cobra-stack.md +468 -0
- package/.grok/skills/lit-code/references/go/concurrency.md +362 -0
- package/.grok/skills/lit-code/references/go/data-modeling.md +329 -0
- package/.grok/skills/lit-code/references/go/error-handling.md +359 -0
- package/.grok/skills/lit-code/references/go/golangci-strict.md +236 -0
- package/.grok/skills/lit-code/references/go/grpc-connect.md +375 -0
- package/.grok/skills/lit-code/references/go/libraries.md +337 -0
- package/.grok/skills/lit-code/references/go/one-liners.md +202 -0
- package/.grok/skills/lit-code/references/go/sqlc-pgx.md +471 -0
- package/.grok/skills/lit-code/references/go/testing.md +467 -0
- package/.grok/skills/lit-code/references/go/type-patterns.md +298 -0
- package/.grok/skills/lit-code/references/permission-sandbox-matrix.md +70 -0
- package/.grok/skills/lit-code/references/python/README.md +314 -0
- package/.grok/skills/lit-code/references/python/async-anyio.md +442 -0
- package/.grok/skills/lit-code/references/python/data-modeling.md +233 -0
- package/.grok/skills/lit-code/references/python/data-processing.md +133 -0
- package/.grok/skills/lit-code/references/python/error-handling.md +218 -0
- package/.grok/skills/lit-code/references/python/fastapi-stack.md +316 -0
- package/.grok/skills/lit-code/references/python/httpx2-optimization.md +360 -0
- package/.grok/skills/lit-code/references/python/libraries.md +307 -0
- package/.grok/skills/lit-code/references/python/one-liners.md +268 -0
- package/.grok/skills/lit-code/references/python/orjson-stack.md +378 -0
- package/.grok/skills/lit-code/references/python/pydantic-ai.md +285 -0
- package/.grok/skills/lit-code/references/python/pyproject-strict.md +232 -0
- package/.grok/skills/lit-code/references/python/textual-tui.md +201 -0
- package/.grok/skills/lit-code/references/python/type-patterns.md +176 -0
- package/.grok/skills/lit-code/references/rust/README.md +317 -0
- package/.grok/skills/lit-code/references/rust/async-tokio.md +299 -0
- package/.grok/skills/lit-code/references/rust/axum-stack.md +467 -0
- package/.grok/skills/lit-code/references/rust/cargo-strict.md +317 -0
- package/.grok/skills/lit-code/references/rust/clap-stack.md +409 -0
- package/.grok/skills/lit-code/references/rust/concurrency.md +375 -0
- package/.grok/skills/lit-code/references/rust/libraries.md +439 -0
- package/.grok/skills/lit-code/references/rust/one-liners.md +291 -0
- package/.grok/skills/lit-code/references/rust/proptest-insta.md +429 -0
- package/.grok/skills/lit-code/references/rust/type-state.md +354 -0
- package/.grok/skills/lit-code/references/rust/unsafe-discipline.md +250 -0
- package/.grok/skills/lit-code/references/rust/zero-cost-safety.md +527 -0
- package/.grok/skills/lit-code/references/rust-ub/README.md +289 -0
- package/.grok/skills/lit-code/references/rust-ub/miri-sanitizers-loom.md +411 -0
- package/.grok/skills/lit-code/references/rust-ub/ub-taxonomy.md +269 -0
- package/.grok/skills/lit-code/references/tool-boundaries.md +66 -0
- package/.grok/skills/lit-code/references/typescript/README.md +195 -0
- package/.grok/skills/lit-code/references/typescript/backend-hono.md +672 -0
- package/.grok/skills/lit-code/references/typescript/bootstrap.md +199 -0
- package/.grok/skills/lit-code/references/typescript/data-modeling.md +202 -0
- package/.grok/skills/lit-code/references/typescript/error-handling.md +169 -0
- package/.grok/skills/lit-code/references/typescript/tsconfig-strict.md +152 -0
- package/.grok/skills/lit-code/references/typescript/type-patterns.md +196 -0
- package/.grok/skills/lit-code/references/worked-cases.md +190 -0
- package/.grok/skills/lit-commit/SKILL.md +218 -0
- package/.grok/skills/lit-comprehend/SKILL.md +63 -0
- package/.grok/skills/lit-comprehend/references/artifact-format.md +58 -0
- package/.grok/skills/lit-comprehend/references/artifact-template.md +219 -0
- package/.grok/skills/lit-comprehend/references/honesty-ledger-contract.md +51 -0
- package/.grok/skills/lit-comprehend/references/micro-worlds.md +195 -0
- package/.grok/skills/lit-comprehend/references/worked-explainer.md +51 -0
- package/.grok/skills/lit-crucible/SKILL.md +231 -0
- package/.grok/skills/lit-handoff/SKILL.md +159 -0
- package/.grok/skills/lit-handoff/evals/evals.json +154 -0
- package/.grok/skills/lit-handoff/examples/HANDOFF-example-generic-auth-refactor.md +97 -0
- package/.grok/skills/lit-handoff/references/_canonical-corpus/manifest.json +17 -0
- package/.grok/skills/lit-handoff/references/source-pointer.md +31 -0
- package/.grok/skills/lit-handoff/scripts/verify-canonical-corpus.mjs +137 -0
- package/.grok/skills/lit-handoff/templates/HANDOFF.md +121 -0
- package/.grok/skills/lit-init/SKILL.md +244 -0
- package/.grok/skills/lit-korean/SKILL.md +176 -0
- package/.grok/skills/lit-plan/SKILL.md +71 -0
- package/.grok/skills/lit-plan/references/plan-schema.md +87 -0
- package/.grok/skills/lit-plan/references/start-work-handoff-contract.md +59 -0
- package/.grok/skills/lit-plan/scripts/scaffold-plan.mjs +259 -0
- package/.grok/skills/lit-plan/scripts/validate-plan.mjs +89 -0
- package/.grok/skills/lit-recap/SKILL.md +57 -0
- package/.grok/skills/lit-scientific-visualization/SKILL.md +213 -0
- package/.grok/skills/lit-scientific-visualization/scripts/verify-canonical-corpus.mjs +181 -0
- package/.grok/skills/lit-team/SKILL.md +73 -0
- package/.grok/skills/lit-team/references/explore-packet.md +70 -0
- package/.grok/skills/lit-team/references/general-purpose-packet.md +75 -0
- package/.grok/skills/lit-team/references/plan-packet.md +73 -0
- package/.grok/skills/litgoal/SKILL.md +98 -0
- package/.grok/skills/litgrok/SKILL.md +77 -0
- package/.grok/skills/litresearch/SKILL.md +60 -0
- package/.grok/skills/litresearch/references/mcp-tool-use-patterns.md +83 -0
- package/.grok/skills/litresearch/references/source-verdict-taxonomy.md +40 -0
- package/.grok/skills/litwork/SKILL.md +109 -0
- package/.grok/skills/lsp/SKILL.md +56 -0
- package/.grok/skills/lsp/references/built-in-lsp-contract.md +71 -0
- package/.grok/skills/lsp-setup/SKILL.md +82 -0
- package/.grok/skills/lsp-setup/references/bash/README.md +54 -0
- package/.grok/skills/lsp-setup/references/c-cpp/README.md +58 -0
- package/.grok/skills/lsp-setup/references/csharp/README.md +64 -0
- package/.grok/skills/lsp-setup/references/dart/README.md +48 -0
- package/.grok/skills/lsp-setup/references/elixir/README.md +51 -0
- package/.grok/skills/lsp-setup/references/go/README.md +53 -0
- package/.grok/skills/lsp-setup/references/haskell/README.md +57 -0
- package/.grok/skills/lsp-setup/references/java/README.md +55 -0
- package/.grok/skills/lsp-setup/references/julia/README.md +56 -0
- package/.grok/skills/lsp-setup/references/kotlin/README.md +58 -0
- package/.grok/skills/lsp-setup/references/lua/README.md +48 -0
- package/.grok/skills/lsp-setup/references/php/README.md +49 -0
- package/.grok/skills/lsp-setup/references/python/README.md +60 -0
- package/.grok/skills/lsp-setup/references/ruby/README.md +53 -0
- package/.grok/skills/lsp-setup/references/rust/README.md +55 -0
- package/.grok/skills/lsp-setup/references/swift/README.md +52 -0
- package/.grok/skills/lsp-setup/references/terraform/README.md +50 -0
- package/.grok/skills/lsp-setup/references/typescript/README.md +63 -0
- package/.grok/skills/lsp-setup/references/yaml/README.md +47 -0
- package/.grok/skills/lsp-setup/references/zig/README.md +49 -0
- package/.grok/skills/lsp-setup/scripts/detect-lsp.mjs +40 -0
- package/.grok/skills/lsp-setup/scripts/lsp-server-table.mjs +309 -0
- package/.grok/skills/lsp-setup/scripts/verify-lsp.mjs +54 -0
- package/.grok/skills/refactor/SKILL.md +210 -0
- package/.grok/skills/review-work/SKILL.md +515 -0
- package/.grok/skills/review-work/references/behavior-lane-contract.md +48 -0
- package/.grok/skills/review-work/references/documentation-lane-contract.md +49 -0
- package/.grok/skills/review-work/references/integration-lane-contract.md +51 -0
- package/.grok/skills/review-work/references/regression-lane-contract.md +48 -0
- package/.grok/skills/review-work/references/safety-lane-contract.md +48 -0
- package/.grok/skills/review-work/references/test-lane-contract.md +48 -0
- package/.grok/skills/review-work/scripts/check-lanes.mjs +63 -0
- package/.grok/skills/rules/SKILL.md +51 -0
- package/.grok/skills/rules/references/loading-order-contract.md +66 -0
- package/.grok/skills/rules/scripts/resolve-guidance.mjs +180 -0
- package/.grok/skills/skill-observer/SKILL.md +78 -0
- package/.grok/skills/skill-observer/references/review-contract.md +77 -0
- package/.grok/skills/skill-observer/scripts/curator.mjs +121 -0
- package/.grok/skills/skill-observer/scripts/review.mjs +347 -0
- package/.grok/skills/skill-observer/scripts/skill-loop.mjs +2087 -0
- package/.grok/skills/skill-observer/scripts/validate-skills.mjs +83 -0
- package/.grok/skills/start-work/SKILL.md +396 -0
- package/.grok/skills/structural-search/SKILL.md +195 -0
- package/.grok/skills/visual-qa/SKILL.md +50 -0
- package/.grok/skills/visual-qa/references/capture-playbook.md +47 -0
- package/.grok/skills/visual-qa/references/complete-contract.md +721 -0
- package/.grok/skills/visual-qa/references/verdict-taxonomy.md +34 -0
- package/.grok/skills/visual-qa/scripts/verify-evidence-manifest.mjs +91 -0
- package/.grok/skills/wikify/SKILL.md +65 -0
- package/.grok/skills/wikify/references/page-format.md +81 -0
- package/.grok/skills/wikify/references/provenance-contract.md +52 -0
- package/.grok/vendor/NOTICE.md +16 -0
- package/.grok/vendor/licenses/045_scientific-visualization-MIT.txt +21 -0
- package/.grok/vendor/provenance/045_scientific-visualization.md +37 -0
- package/.grok/vendor/scientific-visualization/assets/color_palettes.py +197 -0
- package/.grok/vendor/scientific-visualization/assets/nature.mplstyle +75 -0
- package/.grok/vendor/scientific-visualization/assets/presentation.mplstyle +74 -0
- package/.grok/vendor/scientific-visualization/assets/publication.mplstyle +78 -0
- package/.grok/vendor/scientific-visualization/evals/evals.json +158 -0
- package/.grok/vendor/scientific-visualization/references/_canonical-corpus/manifest.json +38 -0
- package/.grok/vendor/scientific-visualization/references/color_palettes.md +380 -0
- package/.grok/vendor/scientific-visualization/references/journal_requirements.md +359 -0
- package/.grok/vendor/scientific-visualization/references/matplotlib_examples.md +608 -0
- package/.grok/vendor/scientific-visualization/references/mdanalysis_martini_visualization.md +85 -0
- package/.grok/vendor/scientific-visualization/references/publication_guidelines.md +217 -0
- package/.grok/vendor/scientific-visualization/references/seaborn_for_publications.md +293 -0
- package/.grok/vendor/scientific-visualization/scripts/figure_export.py +238 -0
- package/.grok/vendor/scientific-visualization/scripts/style_presets.py +467 -0
- package/.grok/vendor/scientific-visualization/tests/test_figure_export.py +51 -0
- package/.grok/vendor/scientific-visualization/tests/test_style_presets.py +114 -0
- package/CHANGELOG.md +131 -0
- package/CODE_OF_CONDUCT.md +9 -0
- package/CONTRIBUTING.md +22 -0
- package/LICENSE +21 -0
- package/README.md +228 -0
- package/README_ko-KR.md +228 -0
- package/SECURITY.md +11 -0
- package/SUPPORT.md +9 -0
- package/bin/litgrok.mjs +860 -0
- package/docs/assets/cover.webp +0 -0
- package/docs/assets/litgrok-clay-icon.png +0 -0
- package/docs/assets/litgrok-continuity-1600.webp +0 -0
- package/docs/assets/litgrok-ignition-1600.webp +0 -0
- package/docs/assets/litgrok-wordmark.svg +5 -0
- package/docs/assets/readme/README.md +31 -0
- package/docs/assets/readme/badge-license.svg +1 -0
- package/docs/assets/readme/badge-version.svg +1 -0
- package/docs/privacy.md +13 -0
- package/docs/reference.md +271 -0
- package/docs/reference_ko-KR.md +267 -0
- package/package.json +50 -0
- package/plugin.json +27 -0
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# Strict tsconfig + Biome
|
|
2
|
+
|
|
3
|
+
The canonical ultra-strict config. Copy-paste, then add your own paths.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## tsconfig.json
|
|
8
|
+
|
|
9
|
+
```jsonc
|
|
10
|
+
{
|
|
11
|
+
"compilerOptions": {
|
|
12
|
+
// ── Strict core ──────────────────────────────────────────
|
|
13
|
+
"strict": true, // enables all strict* flags below
|
|
14
|
+
// strict includes: strictNullChecks, strictFunctionTypes,
|
|
15
|
+
// strictBindCallApply, strictPropertyInitialization,
|
|
16
|
+
// noImplicitAny, noImplicitThis, alwaysStrict, useUnknownInCatchVariables
|
|
17
|
+
|
|
18
|
+
// ── Additional strict flags (NOT included in "strict") ──
|
|
19
|
+
"noUncheckedIndexedAccess": true, // obj[key] is T | undefined, not T
|
|
20
|
+
"exactOptionalPropertyTypes": true, // { x?: string } !== { x: string | undefined }
|
|
21
|
+
"noFallthroughCasesInSwitch": true, // switch fall-through is an error
|
|
22
|
+
"noPropertyAccessFromIndexSignature": true, // forces bracket notation for index sigs
|
|
23
|
+
"forceConsistentCasingInFileNames": true, // prevents case-sensitivity bugs on macOS/Win
|
|
24
|
+
|
|
25
|
+
// ── Module system ────────────────────────────────────────
|
|
26
|
+
"module": "ESNext",
|
|
27
|
+
"moduleResolution": "bundler",
|
|
28
|
+
"verbatimModuleSyntax": true, // forces `import type` for type-only imports
|
|
29
|
+
"isolatedModules": true, // safe for esbuild / swc / Bun transpilation
|
|
30
|
+
"esModuleInterop": true,
|
|
31
|
+
"resolveJsonModule": true,
|
|
32
|
+
|
|
33
|
+
// ── Target ───────────────────────────────────────────────
|
|
34
|
+
"target": "ESNext",
|
|
35
|
+
"lib": ["ESNext"],
|
|
36
|
+
|
|
37
|
+
// ── Emit ─────────────────────────────────────────────────
|
|
38
|
+
"declaration": true,
|
|
39
|
+
"declarationMap": true,
|
|
40
|
+
"sourceMap": true,
|
|
41
|
+
"outDir": "dist",
|
|
42
|
+
"rootDir": "src",
|
|
43
|
+
|
|
44
|
+
// ── Performance ──────────────────────────────────────────
|
|
45
|
+
"skipLibCheck": true, // skip checking .d.ts files for speed
|
|
46
|
+
"incremental": true
|
|
47
|
+
},
|
|
48
|
+
"include": ["src"],
|
|
49
|
+
"exclude": ["node_modules", "dist"]
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### What each extra flag catches
|
|
54
|
+
|
|
55
|
+
| Flag | What it prevents |
|
|
56
|
+
|---|---|
|
|
57
|
+
| `noUncheckedIndexedAccess` | `arr[0]` is `T \| undefined`, not `T`. Forces you to check before using. |
|
|
58
|
+
| `exactOptionalPropertyTypes` | `{ x?: string }` means "missing or string", NOT "string \| undefined". Assigns `undefined` explicitly? Type error. |
|
|
59
|
+
| `noFallthroughCasesInSwitch` | Forgetting `break` / `return` in a switch case. |
|
|
60
|
+
| `noPropertyAccessFromIndexSignature` | `obj.foo` on `Record<string, X>` is an error. Use `obj["foo"]`. |
|
|
61
|
+
| `verbatimModuleSyntax` | Forces `import type { X }` for type-only imports. Prevents runtime import of types. |
|
|
62
|
+
|
|
63
|
+
### Bun-specific additions
|
|
64
|
+
|
|
65
|
+
For Bun projects, add to `compilerOptions`:
|
|
66
|
+
```jsonc
|
|
67
|
+
{
|
|
68
|
+
"types": ["bun-types"],
|
|
69
|
+
"moduleDetection": "force"
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## biome.jsonc
|
|
76
|
+
|
|
77
|
+
```jsonc
|
|
78
|
+
{
|
|
79
|
+
"$schema": "https://biomejs.dev/schemas/2.0.6/schema.json",
|
|
80
|
+
"organizeImports": {
|
|
81
|
+
"enabled": true
|
|
82
|
+
},
|
|
83
|
+
"linter": {
|
|
84
|
+
"enabled": true,
|
|
85
|
+
"rules": {
|
|
86
|
+
"recommended": true,
|
|
87
|
+
"suspicious": {
|
|
88
|
+
"noExplicitAny": "error",
|
|
89
|
+
"noConfusingVoidType": "error",
|
|
90
|
+
"noFallthroughSwitchClause": "error"
|
|
91
|
+
},
|
|
92
|
+
"style": {
|
|
93
|
+
"noDefaultExport": "error",
|
|
94
|
+
"useImportType": "error",
|
|
95
|
+
"noNonNullAssertion": "error",
|
|
96
|
+
"useEnumInitializers": "off",
|
|
97
|
+
"noParameterAssign": "error"
|
|
98
|
+
},
|
|
99
|
+
"correctness": {
|
|
100
|
+
"noUnusedVariables": "error",
|
|
101
|
+
"noUnusedImports": "error"
|
|
102
|
+
},
|
|
103
|
+
"complexity": {
|
|
104
|
+
"noBannedTypes": "error"
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"formatter": {
|
|
109
|
+
"enabled": true,
|
|
110
|
+
"indentStyle": "space",
|
|
111
|
+
"indentWidth": 2,
|
|
112
|
+
"lineWidth": 100
|
|
113
|
+
},
|
|
114
|
+
"javascript": {
|
|
115
|
+
"formatter": {
|
|
116
|
+
"quoteStyle": "double",
|
|
117
|
+
"semicolons": "asNeeded"
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"files": {
|
|
121
|
+
"ignore": ["node_modules", "dist", "build", ".next", ".nuxt", "coverage"]
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Key Biome rules
|
|
127
|
+
|
|
128
|
+
| Rule | What |
|
|
129
|
+
|---|---|
|
|
130
|
+
| `noExplicitAny` | `any` in annotations is an error |
|
|
131
|
+
| `noNonNullAssertion` | `x!` is an error |
|
|
132
|
+
| `noDefaultExport` | Forces named exports |
|
|
133
|
+
| `useImportType` | Forces `import type` for type-only imports |
|
|
134
|
+
| `noParameterAssign` | No mutation of function parameters |
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## CI gate
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
bunx biome check .
|
|
142
|
+
bunx tsc --noEmit
|
|
143
|
+
bun test
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Sources
|
|
149
|
+
|
|
150
|
+
- TypeScript: [tsconfig reference](https://www.typescriptlang.org/tsconfig)
|
|
151
|
+
- Biome: [configuration](https://biomejs.dev/reference/configuration/)
|
|
152
|
+
- Total TypeScript: [tsconfig cheat sheet](https://www.totaltypescript.com/tsconfig-cheat-sheet)
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
# Type Patterns
|
|
2
|
+
|
|
3
|
+
How to use TypeScript's type system to catch bugs at compile time.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Branded types — distinct primitives
|
|
8
|
+
|
|
9
|
+
Same runtime type, different meaning. The compiler prevents mixing.
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
declare const brand: unique symbol
|
|
13
|
+
type Brand<T, B extends string> = T & { readonly [brand]: B }
|
|
14
|
+
|
|
15
|
+
type UserId = Brand<string, "UserId">
|
|
16
|
+
type OrderId = Brand<string, "OrderId">
|
|
17
|
+
type Milliseconds = Brand<number, "Milliseconds">
|
|
18
|
+
type Seconds = Brand<number, "Seconds">
|
|
19
|
+
|
|
20
|
+
function UserId(value: string): UserId { return value as UserId }
|
|
21
|
+
function OrderId(value: string): OrderId { return value as OrderId }
|
|
22
|
+
|
|
23
|
+
function getUser(id: UserId): User { ... }
|
|
24
|
+
|
|
25
|
+
getUser(UserId("abc")) // OK
|
|
26
|
+
getUser(OrderId("abc")) // type error: OrderId is not UserId
|
|
27
|
+
getUser("abc") // type error: string is not UserId
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
With Zod (preferred at boundaries):
|
|
31
|
+
```typescript
|
|
32
|
+
import { z } from "zod"
|
|
33
|
+
|
|
34
|
+
const UserIdSchema = z.string().uuid().brand("UserId")
|
|
35
|
+
type UserId = z.infer<typeof UserIdSchema>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**Use when**: IDs, indices, units of measurement — any pair where swapping is a bug.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## as const — literal types from values
|
|
43
|
+
|
|
44
|
+
Freezes a value to its narrowest possible type. The foundation for enum-free TypeScript.
|
|
45
|
+
|
|
46
|
+
```typescript
|
|
47
|
+
const ROLES = ["admin", "user", "guest"] as const
|
|
48
|
+
type Role = (typeof ROLES)[number] // "admin" | "user" | "guest"
|
|
49
|
+
|
|
50
|
+
const HTTP_STATUS = {
|
|
51
|
+
OK: 200,
|
|
52
|
+
NOT_FOUND: 404,
|
|
53
|
+
INTERNAL: 500,
|
|
54
|
+
} as const
|
|
55
|
+
type HttpStatus = (typeof HTTP_STATUS)[keyof typeof HTTP_STATUS] // 200 | 404 | 500
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Use when**: fixed set of constants. Replaces `enum` entirely.
|
|
59
|
+
**Skip when**: the set is open-ended or user-defined.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## satisfies — validate without widening
|
|
64
|
+
|
|
65
|
+
Type-checks a value against a type while preserving the literal type. Best of both worlds.
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
type Config = Record<string, string | number>
|
|
69
|
+
|
|
70
|
+
// BAD — widens to Record<string, string | number>
|
|
71
|
+
const config: Config = { api: "https://api.example.com", timeout: 30 }
|
|
72
|
+
config.api // string | number — lost the narrowing
|
|
73
|
+
|
|
74
|
+
// GOOD — validates AND preserves literal types
|
|
75
|
+
const config = {
|
|
76
|
+
api: "https://api.example.com",
|
|
77
|
+
timeout: 30,
|
|
78
|
+
} satisfies Config
|
|
79
|
+
config.api // string (narrowed)
|
|
80
|
+
config.timeout // number (narrowed)
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Use when**: you want type validation on a value without losing narrowing.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Discriminated unions — algebraic data types
|
|
88
|
+
|
|
89
|
+
Model every outcome as a type. Force the caller to handle all cases.
|
|
90
|
+
|
|
91
|
+
```typescript
|
|
92
|
+
type GetUserResult =
|
|
93
|
+
| { readonly kind: "found"; readonly user: User }
|
|
94
|
+
| { readonly kind: "not_found"; readonly id: UserId }
|
|
95
|
+
| { readonly kind: "forbidden"; readonly reason: string }
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
The `kind` field (or `type`, `status`, `_tag`) is the discriminant. TypeScript narrows on it automatically.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Exhaustive switch — assertNever
|
|
103
|
+
|
|
104
|
+
Every switch on a discriminated union ends with a default that calls `assertNever`.
|
|
105
|
+
|
|
106
|
+
```typescript
|
|
107
|
+
function assertNever(x: never): never {
|
|
108
|
+
throw new Error(`Unexpected value: ${JSON.stringify(x)}`)
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function handleResult(result: GetUserResult): string {
|
|
112
|
+
switch (result.kind) {
|
|
113
|
+
case "found":
|
|
114
|
+
return result.user.name
|
|
115
|
+
case "not_found":
|
|
116
|
+
return `No user ${result.id}`
|
|
117
|
+
case "forbidden":
|
|
118
|
+
return `Denied: ${result.reason}`
|
|
119
|
+
default:
|
|
120
|
+
return assertNever(result)
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Add a new variant to `GetUserResult`? The compiler errors on the `assertNever` call until you handle it.
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Narrowing — let the compiler follow your logic
|
|
130
|
+
|
|
131
|
+
TypeScript narrows types through `typeof`, `instanceof`, `in`, equality checks, and discriminants.
|
|
132
|
+
|
|
133
|
+
```typescript
|
|
134
|
+
function process(value: string | number | null): string {
|
|
135
|
+
if (value === null) return "nothing"
|
|
136
|
+
// compiler knows: string | number
|
|
137
|
+
|
|
138
|
+
if (typeof value === "string") return value.toUpperCase()
|
|
139
|
+
// compiler knows: number
|
|
140
|
+
|
|
141
|
+
return String(value * 2)
|
|
142
|
+
}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Custom type guards
|
|
146
|
+
|
|
147
|
+
```typescript
|
|
148
|
+
function isNonNull<T>(value: T | null | undefined): value is T {
|
|
149
|
+
return value != null
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
const items = [1, null, 2, undefined, 3]
|
|
153
|
+
const clean = items.filter(isNonNull) // number[]
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## import type — separate values from types
|
|
159
|
+
|
|
160
|
+
Always use `import type` for type-only imports. Enforced by `verbatimModuleSyntax`.
|
|
161
|
+
|
|
162
|
+
```typescript
|
|
163
|
+
import type { User, Config } from "./types" // erased at runtime
|
|
164
|
+
import { createUser } from "./services" // kept at runtime
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
For mixed imports:
|
|
168
|
+
```typescript
|
|
169
|
+
import { createUser, type User } from "./users"
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## Utility types — quick reference
|
|
175
|
+
|
|
176
|
+
| Need | Use |
|
|
177
|
+
|---|---|
|
|
178
|
+
| All properties readonly | `Readonly<T>` |
|
|
179
|
+
| All properties optional | `Partial<T>` |
|
|
180
|
+
| All properties required | `Required<T>` |
|
|
181
|
+
| Pick specific properties | `Pick<T, "a" \| "b">` |
|
|
182
|
+
| Omit specific properties | `Omit<T, "a" \| "b">` |
|
|
183
|
+
| Key-value map | `Record<K, V>` |
|
|
184
|
+
| Extract from union | `Extract<T, U>` |
|
|
185
|
+
| Exclude from union | `Exclude<T, U>` |
|
|
186
|
+
| Return type of function | `ReturnType<typeof fn>` |
|
|
187
|
+
| Parameters of function | `Parameters<typeof fn>` |
|
|
188
|
+
| Awaited type | `Awaited<Promise<T>>` → `T` |
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Sources
|
|
193
|
+
|
|
194
|
+
- TypeScript Handbook: [Narrowing](https://www.typescriptlang.org/docs/handbook/2/narrowing.html)
|
|
195
|
+
- TypeScript Handbook: [Template Literal Types](https://www.typescriptlang.org/docs/handbook/2/template-literal-types.html)
|
|
196
|
+
- Total TypeScript: [as const](https://www.totaltypescript.com/as-const)
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
# Worked programming boundary cases
|
|
2
|
+
|
|
3
|
+
Load these cases when a programming request combines implementation with permission, sandbox, dirty-tree, packaging, or release boundaries. Each case gives concrete input and the expected response shape. Paths and commands are examples; inspect the live repository before using them.
|
|
4
|
+
|
|
5
|
+
## Case 1 — Allowed edit inside a workspace sandbox
|
|
6
|
+
|
|
7
|
+
### Input
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
Goal: make parseMode("AUTO") return auto.
|
|
11
|
+
Scope: src/parse-mode.mjs and test/parse-mode.test.mjs.
|
|
12
|
+
Sandbox: workspace.
|
|
13
|
+
Permission: Read and Edit for src/** and test/**; Bash(npm test) asks.
|
|
14
|
+
Dirty state: README.md is already modified and unrelated.
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### Decision
|
|
18
|
+
|
|
19
|
+
Read the local rules, source, and nearest test. Preserve `README.md`. Add a focused uppercase-input assertion and run it to RED. Patch only the parser. Request approval for the named test command if the host asks. The workspace profile permits writes under cwd but does not itself authorize them.
|
|
20
|
+
|
|
21
|
+
### Expected output
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
CHANGED: src/parse-mode.mjs; test/parse-mode.test.mjs
|
|
25
|
+
RED: node --test test/parse-mode.test.mjs, cwd=<repo>, exit 1, 1 failed
|
|
26
|
+
GREEN: node --test test/parse-mode.test.mjs, cwd=<repo>, exit 0, 6 passed
|
|
27
|
+
PRESERVED: README.md remained modified and untouched
|
|
28
|
+
BOUNDARIES: permission rules and sandbox configuration unchanged
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Case 2 — Explicit allow but read-only sandbox
|
|
32
|
+
|
|
33
|
+
### Input
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
Goal: update src/config.mjs.
|
|
37
|
+
Permission: Edit(src/**) allowed.
|
|
38
|
+
Sandbox: read-only.
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Decision
|
|
42
|
+
|
|
43
|
+
Do not attempt the source write and do not disable the sandbox. An explicit allow permits the tool call, while `read-only` permits writes only to `~/.grok/` and temp. Read-only reconnaissance may continue within scope.
|
|
44
|
+
|
|
45
|
+
### Expected output
|
|
46
|
+
|
|
47
|
+
```text
|
|
48
|
+
BLOCKED: src/config.mjs is inside the repository, which the active read-only
|
|
49
|
+
sandbox does not permit writing. Edit permission is present but does not expand
|
|
50
|
+
sandbox reach. No configuration was changed.
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Case 3 — Installer conflict with a foreign file
|
|
54
|
+
|
|
55
|
+
### Input
|
|
56
|
+
|
|
57
|
+
```text
|
|
58
|
+
Goal: make reinstall idempotent.
|
|
59
|
+
Destination: <temp-project>/.grok/rules/00-product.md
|
|
60
|
+
Existing bytes: "local team rule\n"
|
|
61
|
+
Packaged bytes: "package rule\n"
|
|
62
|
+
Contract: never overwrite a foreign file silently.
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Decision
|
|
66
|
+
|
|
67
|
+
Write a failing installer test that creates the foreign destination and asserts that the entire install refuses before mutation. Implement a preflight comparison across all payload paths. Do not add a force option unless the user requested a replacement policy.
|
|
68
|
+
|
|
69
|
+
### Expected output
|
|
70
|
+
|
|
71
|
+
```text
|
|
72
|
+
exit: non-zero
|
|
73
|
+
stderr: names .grok/rules/00-product.md as a conflict
|
|
74
|
+
destination after run: byte-identical "local team rule\n"
|
|
75
|
+
other payload paths after run: absent
|
|
76
|
+
temporary fixture: removed by test cleanup
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Case 4 — Documentation reference added to a package
|
|
80
|
+
|
|
81
|
+
### Input
|
|
82
|
+
|
|
83
|
+
```text
|
|
84
|
+
Goal: add skills/example/references/contract.md and route to it from SKILL.md.
|
|
85
|
+
Package files include the whole .grok/skills tree.
|
|
86
|
+
No runtime code changes.
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Decision
|
|
90
|
+
|
|
91
|
+
Add a structural test that fails while the reference is missing or unreachable. Write the reference only if it holds an earned contract, table, taxonomy, worked case, or primary-source schema. Update the entry point with a load condition. Run docs tests and inspect dry-pack JSON for the exact path.
|
|
92
|
+
|
|
93
|
+
### Expected output
|
|
94
|
+
|
|
95
|
+
```text
|
|
96
|
+
RED: structural test reports missing references/contract.md
|
|
97
|
+
GREEN: structural test passes and entry point names when to load it
|
|
98
|
+
PACK: .grok/skills/example/references/contract.md appears exactly once
|
|
99
|
+
CLAIM LIMIT: static and package evidence only; no live-host activation claimed
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Case 5 — Test requires child network under strict sandbox
|
|
103
|
+
|
|
104
|
+
### Input
|
|
105
|
+
|
|
106
|
+
```text
|
|
107
|
+
Goal: run an integration test that downloads a fixture.
|
|
108
|
+
Permission: Bash(npm test) allowed.
|
|
109
|
+
Sandbox: strict.
|
|
110
|
+
Fixture is not cached.
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Decision
|
|
114
|
+
|
|
115
|
+
Do not turn the profile off and do not replace the fixture with guessed data. Check for an offline fixture or narrower test. If none exists, report the child-network boundary.
|
|
116
|
+
|
|
117
|
+
### Expected output
|
|
118
|
+
|
|
119
|
+
```text
|
|
120
|
+
BLOCKED GATE: npm run test:integration requires a child-network download that
|
|
121
|
+
the strict profile is intended to block. The fixture is unavailable locally.
|
|
122
|
+
Permission and sandbox settings remain unchanged.
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Case 6 — Version preparation without release authority
|
|
126
|
+
|
|
127
|
+
### Input
|
|
128
|
+
|
|
129
|
+
```text
|
|
130
|
+
Goal: prepare version 0.4.0 and verify the tarball.
|
|
131
|
+
Authorized: package metadata edit and dry-pack checks.
|
|
132
|
+
Hard stops: no commit, tag, push, publish, or release.
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Decision
|
|
136
|
+
|
|
137
|
+
Update only lockstep fields in scope. Run version checks, tests, and dry pack. Do not authenticate to the registry and do not infer that preparation authorizes publication.
|
|
138
|
+
|
|
139
|
+
### Expected output
|
|
140
|
+
|
|
141
|
+
```text
|
|
142
|
+
VERSION: all owned metadata reports 0.4.0
|
|
143
|
+
TEST: package suite exit 0 with counts
|
|
144
|
+
PACK: dry-run JSON inspected; no archive retained
|
|
145
|
+
NOT RUN: commit, tag, push, publish, release
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## Case 7 — Denied tool and tempting substitute
|
|
149
|
+
|
|
150
|
+
### Input
|
|
151
|
+
|
|
152
|
+
```text
|
|
153
|
+
Goal: edit config/settings.toml.
|
|
154
|
+
Permission: Edit(config/**) denied; Bash is allowed.
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Decision
|
|
158
|
+
|
|
159
|
+
Do not use shell redirection, a formatter, or a generator to write the denied path. The effect remains an edit even when the tool label changes.
|
|
160
|
+
|
|
161
|
+
### Expected output
|
|
162
|
+
|
|
163
|
+
```text
|
|
164
|
+
BLOCKED: the mutation matches an explicit edit denial.
|
|
165
|
+
No alternate tool was used to bypass it. Read-only inspection can continue.
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## Case 8 — Focused test passes but shipped surface is unproven
|
|
169
|
+
|
|
170
|
+
### Input
|
|
171
|
+
|
|
172
|
+
```text
|
|
173
|
+
Goal: add a command script under .grok/hooks/.
|
|
174
|
+
Focused stdin driver: passes.
|
|
175
|
+
Package installer: walks the payload tree.
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Decision
|
|
179
|
+
|
|
180
|
+
Run the hook configuration test, verify the command bit, inspect the dry-pack listing, and invoke a temp install. Keep the live-host claim bounded unless a documented event actually drove it.
|
|
181
|
+
|
|
182
|
+
### Expected output
|
|
183
|
+
|
|
184
|
+
```text
|
|
185
|
+
DRIVER: event JSON -> exit/status/stdout contract passed
|
|
186
|
+
CONFIG: event and executable-command validation passed
|
|
187
|
+
PACK: hook JSON and executable both listed
|
|
188
|
+
INSTALL: both files landed byte-identically in a temporary project
|
|
189
|
+
LIMIT: no live Grok Build event was observed in this run
|
|
190
|
+
```
|