@litfamily/lithermes 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/LICENSE +21 -0
- package/README.md +186 -0
- package/README_Ko-KR.md +188 -0
- package/assets/lithermes-plugin/NOTICE.md +46 -0
- package/assets/lithermes-plugin/README.md +390 -0
- package/assets/lithermes-plugin/__init__.py +589 -0
- package/assets/lithermes-plugin/auto_update.py +338 -0
- package/assets/lithermes-plugin/bounded_work.py +1120 -0
- package/assets/lithermes-plugin/bounded_work_tools.py +115 -0
- package/assets/lithermes-plugin/core.py +1813 -0
- package/assets/lithermes-plugin/core_commands.py +243 -0
- package/assets/lithermes-plugin/core_contexts.py +458 -0
- package/assets/lithermes-plugin/core_contract.py +456 -0
- package/assets/lithermes-plugin/core_plans.py +418 -0
- package/assets/lithermes-plugin/core_reader_args.py +34 -0
- package/assets/lithermes-plugin/core_recap_command.py +141 -0
- package/assets/lithermes-plugin/core_recap_state.py +175 -0
- package/assets/lithermes-plugin/core_review.py +198 -0
- package/assets/lithermes-plugin/core_routing.py +641 -0
- package/assets/lithermes-plugin/core_runs.py +283 -0
- package/assets/lithermes-plugin/core_runtime.py +251 -0
- package/assets/lithermes-plugin/core_workflow_commands.py +207 -0
- package/assets/lithermes-plugin/deliverable_hedge_guard.py +562 -0
- package/assets/lithermes-plugin/diagnostics.py +468 -0
- package/assets/lithermes-plugin/handoff.py +97 -0
- package/assets/lithermes-plugin/knowledge.py +920 -0
- package/assets/lithermes-plugin/knowledge_tools.py +130 -0
- package/assets/lithermes-plugin/lit_mark.py +140 -0
- package/assets/lithermes-plugin/lit_mark_rows.json +1363 -0
- package/assets/lithermes-plugin/litgoal/__init__.py +10 -0
- package/assets/lithermes-plugin/litgoal/cli.py +207 -0
- package/assets/lithermes-plugin/litgoal/hook.py +81 -0
- package/assets/lithermes-plugin/litgoal/model.py +203 -0
- package/assets/lithermes-plugin/litgoal/runtime.py +522 -0
- package/assets/lithermes-plugin/litgoal/store.py +367 -0
- package/assets/lithermes-plugin/litgoal/tools.py +300 -0
- package/assets/lithermes-plugin/output-styles/asd-ste100-ko.md +41 -0
- package/assets/lithermes-plugin/output-styles/asd-ste100.md +40 -0
- package/assets/lithermes-plugin/output-styles/eli5-ko.md +13 -0
- package/assets/lithermes-plugin/output-styles/eli5.md +11 -0
- package/assets/lithermes-plugin/output_styles.py +62 -0
- package/assets/lithermes-plugin/payload-version.json +2107 -0
- package/assets/lithermes-plugin/plugin.yaml +16 -0
- package/assets/lithermes-plugin/provider_metrics.py +161 -0
- package/assets/lithermes-plugin/redaction.py +148 -0
- package/assets/lithermes-plugin/rules/__init__.py +55 -0
- package/assets/lithermes-plugin/rules/bundled-rules/baseline-discipline.md +20 -0
- package/assets/lithermes-plugin/rules/bundled-rules/build-decision-gate.md +19 -0
- package/assets/lithermes-plugin/rules/bundled-rules/windows-git-bash.md +17 -0
- package/assets/lithermes-plugin/rules/constants.py +122 -0
- package/assets/lithermes-plugin/rules/discovery.py +276 -0
- package/assets/lithermes-plugin/rules/engine.py +447 -0
- package/assets/lithermes-plugin/rules/frontmatter.py +149 -0
- package/assets/lithermes-plugin/rules/globmatch.py +333 -0
- package/assets/lithermes-plugin/scientific_visualization.py +158 -0
- package/assets/lithermes-plugin/session_context.py +8 -0
- package/assets/lithermes-plugin/skill_loop.py +2044 -0
- package/assets/lithermes-plugin/skill_observer.py +1778 -0
- package/assets/lithermes-plugin/skills/autoconference/LICENSE +21 -0
- package/assets/lithermes-plugin/skills/autoconference/ORIGIN.json +11 -0
- package/assets/lithermes-plugin/skills/autoconference/SKILL.md +163 -0
- package/assets/lithermes-plugin/skills/autoconference/assets/conference_template.md +76 -0
- package/assets/lithermes-plugin/skills/autoconference/assets/report_template.md +53 -0
- package/assets/lithermes-plugin/skills/autoconference/assets/synthesis_template.md +39 -0
- package/assets/lithermes-plugin/skills/autoconference/dependencies/autoresearch.md +14 -0
- package/assets/lithermes-plugin/skills/autoconference/modes/analyze/SKILL.md +269 -0
- package/assets/lithermes-plugin/skills/autoconference/modes/core/SKILL.md +134 -0
- package/assets/lithermes-plugin/skills/autoconference/modes/core/convergence-guide.md +162 -0
- package/assets/lithermes-plugin/skills/autoconference/modes/core/crash-recovery.md +63 -0
- package/assets/lithermes-plugin/skills/autoconference/modes/debate/SKILL.md +383 -0
- package/assets/lithermes-plugin/skills/autoconference/modes/plan/SKILL.md +304 -0
- package/assets/lithermes-plugin/skills/autoconference/modes/resume/SKILL.md +82 -0
- package/assets/lithermes-plugin/skills/autoconference/modes/ship/SKILL.md +78 -0
- package/assets/lithermes-plugin/skills/autoconference/modes/survey/SKILL.md +376 -0
- package/assets/lithermes-plugin/skills/autoconference/references/agent-prompts.md +110 -0
- package/assets/lithermes-plugin/skills/autoconference/references/conference-protocol.md +90 -0
- package/assets/lithermes-plugin/skills/autoconference/references/core-principles.md +78 -0
- package/assets/lithermes-plugin/skills/autoconference/references/results-logging.md +165 -0
- package/assets/lithermes-plugin/skills/autoconference/references/visualization-guide.md +99 -0
- package/assets/lithermes-plugin/skills/autoconference/scripts/check_conference.sh +197 -0
- package/assets/lithermes-plugin/skills/autoconference/scripts/init_conference.py +489 -0
- package/assets/lithermes-plugin/skills/autoconference/scripts/style_presets.py +104 -0
- package/assets/lithermes-plugin/skills/autoconference/templates/code-performance.md +59 -0
- package/assets/lithermes-plugin/skills/autoconference/templates/debate-mode.md +50 -0
- package/assets/lithermes-plugin/skills/autoconference/templates/prompt-optimization.md +58 -0
- package/assets/lithermes-plugin/skills/autoconference/templates/quick-conference.md +48 -0
- package/assets/lithermes-plugin/skills/autoconference/templates/research-synthesis.md +56 -0
- package/assets/lithermes-plugin/skills/autoconference/templates/survey-mode.md +63 -0
- package/assets/lithermes-plugin/skills/autoresearch/LICENSE +21 -0
- package/assets/lithermes-plugin/skills/autoresearch/ORIGIN.json +11 -0
- package/assets/lithermes-plugin/skills/autoresearch/SKILL.md +175 -0
- package/assets/lithermes-plugin/skills/autoresearch/assets/report_template.md +50 -0
- package/assets/lithermes-plugin/skills/autoresearch/assets/research_template.md +38 -0
- package/assets/lithermes-plugin/skills/autoresearch/assets/results_template.tsv +2 -0
- package/assets/lithermes-plugin/skills/autoresearch/modes/core/SKILL.md +204 -0
- package/assets/lithermes-plugin/skills/autoresearch/modes/core/evaluator-contract.md +108 -0
- package/assets/lithermes-plugin/skills/autoresearch/modes/core/stuck-detection.md +102 -0
- package/assets/lithermes-plugin/skills/autoresearch/modes/debug/SKILL.md +240 -0
- package/assets/lithermes-plugin/skills/autoresearch/modes/debug/investigation-techniques.md +254 -0
- package/assets/lithermes-plugin/skills/autoresearch/modes/fix/SKILL.md +176 -0
- package/assets/lithermes-plugin/skills/autoresearch/modes/learn/SKILL.md +96 -0
- package/assets/lithermes-plugin/skills/autoresearch/modes/plan/SKILL.md +291 -0
- package/assets/lithermes-plugin/skills/autoresearch/modes/predict/SKILL.md +271 -0
- package/assets/lithermes-plugin/skills/autoresearch/modes/predict/persona-templates.md +227 -0
- package/assets/lithermes-plugin/skills/autoresearch/modes/reason/SKILL.md +174 -0
- package/assets/lithermes-plugin/skills/autoresearch/modes/scenario/SKILL.md +168 -0
- package/assets/lithermes-plugin/skills/autoresearch/modes/scenario/dimensions.md +173 -0
- package/assets/lithermes-plugin/skills/autoresearch/modes/security/SKILL.md +287 -0
- package/assets/lithermes-plugin/skills/autoresearch/modes/security/owasp-checklist.md +156 -0
- package/assets/lithermes-plugin/skills/autoresearch/modes/security/stride-model.md +191 -0
- package/assets/lithermes-plugin/skills/autoresearch/modes/ship/SKILL.md +99 -0
- package/assets/lithermes-plugin/skills/autoresearch/modes/ship/type-checklists.md +158 -0
- package/assets/lithermes-plugin/skills/autoresearch/references/core-principles.md +75 -0
- package/assets/lithermes-plugin/skills/autoresearch/references/results-logging.md +55 -0
- package/assets/lithermes-plugin/skills/autoresearch/references/visualization-guide.md +90 -0
- package/assets/lithermes-plugin/skills/autoresearch/scripts/check_progress.sh +139 -0
- package/assets/lithermes-plugin/skills/autoresearch/scripts/init_research.py +219 -0
- package/assets/lithermes-plugin/skills/autoresearch/scripts/style_presets.py +104 -0
- package/assets/lithermes-plugin/skills/browser-drive/SKILL.md +147 -0
- package/assets/lithermes-plugin/skills/browser-drive/scripts/capability_probe.py +528 -0
- package/assets/lithermes-plugin/skills/comment-checker/SKILL.md +162 -0
- package/assets/lithermes-plugin/skills/debugging/SKILL.md +271 -0
- package/assets/lithermes-plugin/skills/debugging/references/methodology/00-setup.md +108 -0
- package/assets/lithermes-plugin/skills/debugging/references/methodology/02-investigate.md +122 -0
- package/assets/lithermes-plugin/skills/debugging/references/methodology/04-oracle-triple.md +136 -0
- package/assets/lithermes-plugin/skills/debugging/references/methodology/05-escalate.md +69 -0
- package/assets/lithermes-plugin/skills/debugging/references/methodology/06-fix.md +116 -0
- package/assets/lithermes-plugin/skills/debugging/references/methodology/08-qa.md +94 -0
- package/assets/lithermes-plugin/skills/debugging/references/methodology/09-cleanup.md +164 -0
- package/assets/lithermes-plugin/skills/debugging/references/methodology/partial-runtime-evidence.md +229 -0
- package/assets/lithermes-plugin/skills/debugging/references/runtimes/bundled-js-binary.md +415 -0
- package/assets/lithermes-plugin/skills/debugging/references/runtimes/go.md +252 -0
- package/assets/lithermes-plugin/skills/debugging/references/runtimes/native-binary.md +484 -0
- package/assets/lithermes-plugin/skills/debugging/references/runtimes/node.md +260 -0
- package/assets/lithermes-plugin/skills/debugging/references/runtimes/python.md +248 -0
- package/assets/lithermes-plugin/skills/debugging/references/runtimes/rust.md +234 -0
- package/assets/lithermes-plugin/skills/debugging/references/tools/ghidra.md +212 -0
- package/assets/lithermes-plugin/skills/debugging/references/tools/playwright-cli.md +194 -0
- package/assets/lithermes-plugin/skills/debugging/references/tools/pwndbg.md +263 -0
- package/assets/lithermes-plugin/skills/debugging/references/tools/pwntools.md +265 -0
- package/assets/lithermes-plugin/skills/deep-interview/SKILL.md +419 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/SKILL.md +49 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/.gitattributes +2 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/README.md +248 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/_INDEX.md +191 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/airbnb.md +393 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/airtable.md +92 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/apple.md +250 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/aside.md +209 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/binance.md +348 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/bmw.md +183 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/brutalist-skill.md +92 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/bugatti.md +271 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/cal.md +262 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/claude.md +315 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/clay.md +307 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/clickhouse.md +284 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/clone-from-url.md +65 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/cohere.md +269 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/coinbase.md +132 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/composio.md +310 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/cursor.md +312 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/design-system-architecture.md +244 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/elevenlabs.md +268 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/expo.md +284 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/ferrari.md +317 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/figma.md +223 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/framer.md +249 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/gpt-tasteskill.md +74 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/hashicorp.md +281 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/ibm.md +335 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/image-to-code-skill.md +1228 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/imagegen-brandkit.md +798 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/imagegen-frontend-mobile.md +1465 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/imagegen-frontend-web.md +987 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/intercom.md +149 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/kraken.md +128 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/lamborghini.md +291 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/layout-skill.md +107 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/lazyweb.md +77 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/linear.app.md +370 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/lovable.md +301 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/mastercard.md +368 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/meta.md +369 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/minimalist-skill.md +85 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/minimax.md +260 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/mintlify.md +329 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/miro.md +111 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/mistral.ai.md +264 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/mongodb.md +269 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/nike.md +366 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/notion.md +312 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/nvidia.md +296 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/ollama.md +270 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/opencode.ai.md +284 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/output-skill.md +49 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/pinterest.md +233 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/playstation.md +367 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/posthog.md +259 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/raycast.md +271 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/react-dev-tooling-skill.md +230 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/redesign-skill.md +178 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/renault.md +314 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/replicate.md +264 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/resend.md +306 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/revolut.md +188 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/runwayml.md +247 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/sanity.md +360 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/sentry.md +265 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/shopify.md +353 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/soft-skill.md +98 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/spacex.md +197 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/spotify.md +249 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/starbucks.md +583 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/stitch-design-example.md +121 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/stitch-skill.md +184 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/stripe.md +325 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/supabase.md +258 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/superhuman.md +255 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/taste-skill.md +1206 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/tesla.md +289 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/theverge.md +342 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/together.ai.md +266 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/uber.md +298 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/vercel.md +313 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/vodafone.md +426 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/voltagent.md +326 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/warp.md +256 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/webflow.md +95 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/wired.md +281 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/wise.md +176 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/x.ai.md +260 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/zapier.md +331 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/EVIDENCE.md +97 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/README.md +48 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/UPSTREAM.md +80 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/lane-a-direction.md +64 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/lane-b-execution.md +65 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/lane-c-review.md +65 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/lane-d-memory.md +83 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/orchestration.md +80 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/routing.md +79 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/LICENSE +21 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/agents/accessibility-reviewer.md +83 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/agents/content-writer.md +132 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/agents/design-builder.md +109 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/agents/design-critic.md +89 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/agents/design-lead.md +113 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/agents/design-scout.md +78 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/agents/design-strategist.md +121 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/agents/heuristic-evaluator.md +268 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/agents/inspiration-scout.md +107 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/agents/motion-designer.md +120 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/accessible-content/reference.md +101 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/adaptive-interfaces/reference.md +109 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/cognitive-accessibility/reference.md +107 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/design-debate/reference.md +199 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/design-debt-tracker/reference.md +174 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/design-handoff/reference.md +125 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/design-md/reference.md +106 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/design-retrospective/reference.md +266 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/design-review/reference.md +123 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/design-system-alignment/reference.md +120 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/designpowers-critique/reference.md +164 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/heuristic-evaluation/reference.md +85 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/inclusive-personas/reference.md +98 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/inspiration-scouting/reference.md +165 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/interaction-design/reference.md +122 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/motion-choreography/reference.md +81 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/research-planning/reference.md +96 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/responsive-patterns/reference.md +77 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/synthetic-user-testing/reference.md +192 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/taste-feedback/reference.md +165 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/taste-report/reference.md +78 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/token-architecture/reference.md +75 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/ui-composition/reference.md +117 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/usability-testing/reference.md +78 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/verification-before-shipping/reference.md +125 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/voice-and-tone/reference.md +79 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/writing-design-plans/reference.md +119 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/perfection/README.md +160 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/perfection/react-perf-tooling.md +127 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/README.md +659 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/charts.csv +26 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/colors.csv +162 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/icons.csv +106 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/landing.csv +35 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/products.csv +162 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/react-performance.csv +45 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/astro.csv +54 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/flutter.csv +53 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/html-tailwind.csv +56 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/jetpack-compose.csv +53 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/nextjs.csv +53 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/nuxt-ui.csv +51 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/nuxtjs.csv +59 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/react-native.csv +52 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/react.csv +54 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/shadcn.csv +61 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/svelte.csv +54 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/swiftui.csv +51 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/vue.csv +50 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/styles.csv +85 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/typography.csv +74 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/ui-reasoning.csv +162 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/ux-guidelines.csv +100 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/web-interface.csv +31 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/scripts/core.py +262 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/scripts/design_system.py +1148 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/scripts/search.py +114 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/legal/ATTRIBUTION.md +217 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/legal/LICENSE +21 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/legal/LICENSE-Apache-2.0.txt +201 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/manifest.json +876 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/adaptive-layout.md +81 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/brand-and-imagery.md +84 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/complete-contract.md +457 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/composition.md +89 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/creative-directions.md +81 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/evidence-review.md +113 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/implementation-platforms.md +92 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/inclusive-interface.md +85 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/interaction-motion.md +87 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/operating-lanes.md +85 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/performance-delivery.md +85 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/product-direction.md +86 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/redesign-playbook.md +91 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/system-foundations.md +82 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/taste-direction.md +86 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/visual-language.md +85 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/visual-reconstruction.md +94 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/resources/LICENSE +21 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/resources/PROVENANCE.json +38 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/resources/THIRD-PARTY-NOTICE.txt +14 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/resources/design-intelligence.json +1 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/resources/import-manifest.json +1060 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/schemas/design-contract-v1alpha1.schema.json +264 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/schemas/design-contract-v1beta1.schema.json +268 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/schemas/design-contract-v1beta2.schema.json +280 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/scripts/design_contract_validation.py +996 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/scripts/design_intelligence.py +128 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/scripts/design_runtime.py +98 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/scripts/import_design_intelligence.py +56 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/scripts/source_import.py +144 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/scripts/source_manifest.py +65 -0
- package/assets/lithermes-plugin/skills/lit-burnoff/SKILL.md +448 -0
- package/assets/lithermes-plugin/skills/lit-burnoff-file/SKILL.md +254 -0
- package/assets/lithermes-plugin/skills/lit-code/SKILL.md +609 -0
- package/assets/lithermes-plugin/skills/lit-code/references/go/README.md +90 -0
- package/assets/lithermes-plugin/skills/lit-code/references/go/backend-stack.md +641 -0
- package/assets/lithermes-plugin/skills/lit-code/references/go/bootstrap.md +328 -0
- package/assets/lithermes-plugin/skills/lit-code/references/go/bubbletea-v2.md +359 -0
- package/assets/lithermes-plugin/skills/lit-code/references/go/cobra-stack.md +468 -0
- package/assets/lithermes-plugin/skills/lit-code/references/go/concurrency.md +362 -0
- package/assets/lithermes-plugin/skills/lit-code/references/go/data-modeling.md +329 -0
- package/assets/lithermes-plugin/skills/lit-code/references/go/error-handling.md +359 -0
- package/assets/lithermes-plugin/skills/lit-code/references/go/golangci-strict.md +236 -0
- package/assets/lithermes-plugin/skills/lit-code/references/go/grpc-connect.md +375 -0
- package/assets/lithermes-plugin/skills/lit-code/references/go/libraries.md +337 -0
- package/assets/lithermes-plugin/skills/lit-code/references/go/one-liners.md +202 -0
- package/assets/lithermes-plugin/skills/lit-code/references/go/sqlc-pgx.md +471 -0
- package/assets/lithermes-plugin/skills/lit-code/references/go/testing.md +467 -0
- package/assets/lithermes-plugin/skills/lit-code/references/go/type-patterns.md +298 -0
- package/assets/lithermes-plugin/skills/lit-code/references/python/README.md +314 -0
- package/assets/lithermes-plugin/skills/lit-code/references/python/async-anyio.md +442 -0
- package/assets/lithermes-plugin/skills/lit-code/references/python/data-modeling.md +233 -0
- package/assets/lithermes-plugin/skills/lit-code/references/python/data-processing.md +133 -0
- package/assets/lithermes-plugin/skills/lit-code/references/python/error-handling.md +218 -0
- package/assets/lithermes-plugin/skills/lit-code/references/python/fastapi-stack.md +316 -0
- package/assets/lithermes-plugin/skills/lit-code/references/python/httpx2-optimization.md +360 -0
- package/assets/lithermes-plugin/skills/lit-code/references/python/libraries.md +307 -0
- package/assets/lithermes-plugin/skills/lit-code/references/python/one-liners.md +268 -0
- package/assets/lithermes-plugin/skills/lit-code/references/python/orjson-stack.md +378 -0
- package/assets/lithermes-plugin/skills/lit-code/references/python/pydantic-ai.md +285 -0
- package/assets/lithermes-plugin/skills/lit-code/references/python/pyproject-strict.md +232 -0
- package/assets/lithermes-plugin/skills/lit-code/references/python/textual-tui.md +201 -0
- package/assets/lithermes-plugin/skills/lit-code/references/python/type-patterns.md +176 -0
- package/assets/lithermes-plugin/skills/lit-code/references/rust/README.md +317 -0
- package/assets/lithermes-plugin/skills/lit-code/references/rust/async-tokio.md +299 -0
- package/assets/lithermes-plugin/skills/lit-code/references/rust/axum-stack.md +467 -0
- package/assets/lithermes-plugin/skills/lit-code/references/rust/cargo-strict.md +317 -0
- package/assets/lithermes-plugin/skills/lit-code/references/rust/clap-stack.md +409 -0
- package/assets/lithermes-plugin/skills/lit-code/references/rust/concurrency.md +375 -0
- package/assets/lithermes-plugin/skills/lit-code/references/rust/libraries.md +439 -0
- package/assets/lithermes-plugin/skills/lit-code/references/rust/one-liners.md +291 -0
- package/assets/lithermes-plugin/skills/lit-code/references/rust/proptest-insta.md +429 -0
- package/assets/lithermes-plugin/skills/lit-code/references/rust/type-state.md +354 -0
- package/assets/lithermes-plugin/skills/lit-code/references/rust/unsafe-discipline.md +250 -0
- package/assets/lithermes-plugin/skills/lit-code/references/rust/zero-cost-safety.md +527 -0
- package/assets/lithermes-plugin/skills/lit-code/references/rust-ub/README.md +289 -0
- package/assets/lithermes-plugin/skills/lit-code/references/rust-ub/miri-sanitizers-loom.md +411 -0
- package/assets/lithermes-plugin/skills/lit-code/references/rust-ub/ub-taxonomy.md +269 -0
- package/assets/lithermes-plugin/skills/lit-code/references/typescript/README.md +195 -0
- package/assets/lithermes-plugin/skills/lit-code/references/typescript/backend-hono.md +672 -0
- package/assets/lithermes-plugin/skills/lit-code/references/typescript/bootstrap.md +199 -0
- package/assets/lithermes-plugin/skills/lit-code/references/typescript/data-modeling.md +202 -0
- package/assets/lithermes-plugin/skills/lit-code/references/typescript/error-handling.md +169 -0
- package/assets/lithermes-plugin/skills/lit-code/references/typescript/tsconfig-strict.md +152 -0
- package/assets/lithermes-plugin/skills/lit-code/references/typescript/type-patterns.md +196 -0
- package/assets/lithermes-plugin/skills/lit-code/scripts/go/check-no-excuse-rules.sh +173 -0
- package/assets/lithermes-plugin/skills/lit-code/scripts/go/new-project.py +138 -0
- package/assets/lithermes-plugin/skills/lit-code/scripts/go/templates/.editorconfig +13 -0
- package/assets/lithermes-plugin/skills/lit-code/scripts/go/templates/.golangci.yml +95 -0
- package/assets/lithermes-plugin/skills/lit-code/scripts/go/templates/AGENTS.md.tmpl +24 -0
- package/assets/lithermes-plugin/skills/lit-code/scripts/go/templates/README.md.tmpl +12 -0
- package/assets/lithermes-plugin/skills/lit-code/scripts/go/templates/Taskfile.yml +40 -0
- package/assets/lithermes-plugin/skills/lit-code/scripts/go/templates/ci.yml +37 -0
- package/assets/lithermes-plugin/skills/lit-code/scripts/go/templates/config.go +24 -0
- package/assets/lithermes-plugin/skills/lit-code/scripts/go/templates/gitignore +15 -0
- package/assets/lithermes-plugin/skills/lit-code/scripts/go/templates/main.go.tmpl +22 -0
- package/assets/lithermes-plugin/skills/lit-code/scripts/go/templates/run.go +15 -0
- package/assets/lithermes-plugin/skills/lit-code/scripts/python/check-no-excuse-rules.py +687 -0
- package/assets/lithermes-plugin/skills/lit-code/scripts/python/new-project.py +172 -0
- package/assets/lithermes-plugin/skills/lit-code/scripts/python/new-script.py +116 -0
- package/assets/lithermes-plugin/skills/lit-code/scripts/rust/check-no-excuse-rules.py +296 -0
- package/assets/lithermes-plugin/skills/lit-code/scripts/rust/check-no-excuse-rules.sh +158 -0
- package/assets/lithermes-plugin/skills/lit-code/scripts/rust/new-project.py +175 -0
- package/assets/lithermes-plugin/skills/lit-code/scripts/typescript/check-no-excuse-rules.ts +282 -0
- package/assets/lithermes-plugin/skills/lit-code/scripts/typescript/new-project.ts +177 -0
- package/assets/lithermes-plugin/skills/lit-commit/SKILL.md +242 -0
- package/assets/lithermes-plugin/skills/lit-comprehend/SKILL.md +259 -0
- package/assets/lithermes-plugin/skills/lit-comprehend/assets/explainer-scaffold.html +123 -0
- package/assets/lithermes-plugin/skills/lit-comprehend/references/artifact-template.md +205 -0
- package/assets/lithermes-plugin/skills/lit-comprehend/references/micro-worlds.md +139 -0
- package/assets/lithermes-plugin/skills/lit-comprehend/scripts/verify-explainer.py +324 -0
- package/assets/lithermes-plugin/skills/lit-crucible/SKILL.md +315 -0
- package/assets/lithermes-plugin/skills/lit-handoff/ORIGIN.json +23 -0
- package/assets/lithermes-plugin/skills/lit-handoff/SKILL.md +145 -0
- package/assets/lithermes-plugin/skills/lit-init/SKILL.md +329 -0
- package/assets/lithermes-plugin/skills/lit-korean/SKILL.md +237 -0
- package/assets/lithermes-plugin/skills/lit-korean/references/quick-rules.md +24 -0
- package/assets/lithermes-plugin/skills/lit-korean/references/safety-checklist.md +23 -0
- package/assets/lithermes-plugin/skills/lit-plan/SKILL.md +596 -0
- package/assets/lithermes-plugin/skills/lit-recap/SKILL.md +183 -0
- package/assets/lithermes-plugin/skills/lit-scientific-visualization/ORIGIN.json +32 -0
- package/assets/lithermes-plugin/skills/lit-scientific-visualization/SKILL.md +170 -0
- package/assets/lithermes-plugin/skills/litgoal/.gitkeep +0 -0
- package/assets/lithermes-plugin/skills/litgoal/SKILL.md +372 -0
- package/assets/lithermes-plugin/skills/litresearch/ATTRIBUTION.md +50 -0
- package/assets/lithermes-plugin/skills/litresearch/SKILL.md +593 -0
- package/assets/lithermes-plugin/skills/litwork/SKILL.md +419 -0
- package/assets/lithermes-plugin/skills/lsp/SKILL.md +165 -0
- package/assets/lithermes-plugin/skills/lsp-setup/SKILL.md +265 -0
- package/assets/lithermes-plugin/skills/lsp-setup/references/bash/README.md +68 -0
- package/assets/lithermes-plugin/skills/lsp-setup/references/c-cpp/README.md +78 -0
- package/assets/lithermes-plugin/skills/lsp-setup/references/csharp/README.md +90 -0
- package/assets/lithermes-plugin/skills/lsp-setup/references/dart/README.md +59 -0
- package/assets/lithermes-plugin/skills/lsp-setup/references/elixir/README.md +61 -0
- package/assets/lithermes-plugin/skills/lsp-setup/references/go/README.md +63 -0
- package/assets/lithermes-plugin/skills/lsp-setup/references/haskell/README.md +69 -0
- package/assets/lithermes-plugin/skills/lsp-setup/references/java/README.md +70 -0
- package/assets/lithermes-plugin/skills/lsp-setup/references/julia/README.md +70 -0
- package/assets/lithermes-plugin/skills/lsp-setup/references/kotlin/README.md +72 -0
- package/assets/lithermes-plugin/skills/lsp-setup/references/lua/README.md +68 -0
- package/assets/lithermes-plugin/skills/lsp-setup/references/php/README.md +61 -0
- package/assets/lithermes-plugin/skills/lsp-setup/references/python/README.md +73 -0
- package/assets/lithermes-plugin/skills/lsp-setup/references/ruby/README.md +67 -0
- package/assets/lithermes-plugin/skills/lsp-setup/references/rust/README.md +65 -0
- package/assets/lithermes-plugin/skills/lsp-setup/references/swift/README.md +64 -0
- package/assets/lithermes-plugin/skills/lsp-setup/references/terraform/README.md +66 -0
- package/assets/lithermes-plugin/skills/lsp-setup/references/typescript/README.md +82 -0
- package/assets/lithermes-plugin/skills/lsp-setup/references/yaml/README.md +65 -0
- package/assets/lithermes-plugin/skills/lsp-setup/references/zig/README.md +59 -0
- package/assets/lithermes-plugin/skills/lsp-setup/scripts/detect-lsp.ts +221 -0
- package/assets/lithermes-plugin/skills/lsp-setup/scripts/lsp-server-table.ts +146 -0
- package/assets/lithermes-plugin/skills/lsp-setup/scripts/tsconfig.json +18 -0
- package/assets/lithermes-plugin/skills/lsp-setup/scripts/verify-lsp.ts +252 -0
- package/assets/lithermes-plugin/skills/refactor/SKILL.md +896 -0
- package/assets/lithermes-plugin/skills/review-work/SKILL.md +450 -0
- package/assets/lithermes-plugin/skills/rules/SKILL.md +194 -0
- package/assets/lithermes-plugin/skills/skill-observer/SKILL.md +190 -0
- package/assets/lithermes-plugin/skills/skill-observer/references/review-contract.md +77 -0
- package/assets/lithermes-plugin/skills/start-work/SKILL.md +550 -0
- package/assets/lithermes-plugin/skills/structural-search/SKILL.md +274 -0
- package/assets/lithermes-plugin/skills/visual-qa/SKILL.md +48 -0
- package/assets/lithermes-plugin/skills/visual-qa/references/capture-playbook.md +133 -0
- package/assets/lithermes-plugin/skills/visual-qa/references/complete-contract.md +522 -0
- package/assets/lithermes-plugin/skills/visual-qa/schemas/evidence-manifest-v1alpha1.schema.json +135 -0
- package/assets/lithermes-plugin/skills/visual-qa/schemas/evidence-manifest-v1beta1.schema.json +110 -0
- package/assets/lithermes-plugin/skills/visual-qa/schemas/review-receipt-v1alpha1.schema.json +49 -0
- package/assets/lithermes-plugin/skills/visual-qa/scripts/contract_checks.py +71 -0
- package/assets/lithermes-plugin/skills/visual-qa/scripts/evidence_contract.py +288 -0
- package/assets/lithermes-plugin/skills/visual-qa/scripts/png_runtime.py +379 -0
- package/assets/lithermes-plugin/skills/visual-qa/scripts/review_contract.py +151 -0
- package/assets/lithermes-plugin/skills/visual-qa/scripts/tier_checks.py +190 -0
- package/assets/lithermes-plugin/skills/visual-qa/scripts/tier_contract.py +103 -0
- package/assets/lithermes-plugin/skills/visual-qa/scripts/tui_runtime.py +170 -0
- package/assets/lithermes-plugin/skills/visual-qa/scripts/visual_contracts.py +31 -0
- package/assets/lithermes-plugin/skills/visual-qa/scripts/visual_qa.py +79 -0
- package/assets/lithermes-plugin/skills/wikify/LICENSE +21 -0
- package/assets/lithermes-plugin/skills/wikify/ORIGIN.json +12 -0
- package/assets/lithermes-plugin/skills/wikify/SKILL.md +192 -0
- package/assets/lithermes-plugin/skills/wikify/assets/home-template.md +44 -0
- package/assets/lithermes-plugin/skills/wikify/assets/maintenance-report-template.md +46 -0
- package/assets/lithermes-plugin/skills/wikify/assets/paper-source-note-template.md +138 -0
- package/assets/lithermes-plugin/skills/wikify/assets/source-note-template.md +45 -0
- package/assets/lithermes-plugin/skills/wikify/assets/wiki-rules-template.md +117 -0
- package/assets/lithermes-plugin/skills/wikify/modes/ingest/SKILL.md +24 -0
- package/assets/lithermes-plugin/skills/wikify/modes/init/SKILL.md +26 -0
- package/assets/lithermes-plugin/skills/wikify/modes/lint/SKILL.md +30 -0
- package/assets/lithermes-plugin/skills/wikify/modes/query/SKILL.md +22 -0
- package/assets/lithermes-plugin/skills/wikify/modes/save/SKILL.md +32 -0
- package/assets/lithermes-plugin/skills/wikify/references/full-contract.md +761 -0
- package/assets/lithermes-plugin/uiux_runtime_common.py +117 -0
- package/assets/lithermes-plugin/vendor/NOTICE.md +21 -0
- package/assets/lithermes-plugin/vendor/handoff/SKILL.md +199 -0
- package/assets/lithermes-plugin/vendor/handoff/evals/evals.json +154 -0
- package/assets/lithermes-plugin/vendor/handoff/examples/HANDOFF-example-generic-auth-refactor.md +97 -0
- package/assets/lithermes-plugin/vendor/handoff/templates/HANDOFF.md +121 -0
- package/assets/lithermes-plugin/vendor/licenses/022_handoff-MIT.txt +21 -0
- package/assets/lithermes-plugin/vendor/licenses/045_scientific-visualization-MIT.txt +21 -0
- package/assets/lithermes-plugin/vendor/provenance/022_handoff.md +16 -0
- package/assets/lithermes-plugin/vendor/provenance/045_scientific-visualization.md +18 -0
- package/assets/lithermes-plugin/vendor/scientific-visualization/SKILL.md +283 -0
- package/assets/lithermes-plugin/vendor/scientific-visualization/assets/color_palettes.py +197 -0
- package/assets/lithermes-plugin/vendor/scientific-visualization/assets/nature.mplstyle +75 -0
- package/assets/lithermes-plugin/vendor/scientific-visualization/assets/presentation.mplstyle +74 -0
- package/assets/lithermes-plugin/vendor/scientific-visualization/assets/publication.mplstyle +78 -0
- package/assets/lithermes-plugin/vendor/scientific-visualization/evals/evals.json +158 -0
- package/assets/lithermes-plugin/vendor/scientific-visualization/references/color_palettes.md +380 -0
- package/assets/lithermes-plugin/vendor/scientific-visualization/references/journal_requirements.md +359 -0
- package/assets/lithermes-plugin/vendor/scientific-visualization/references/matplotlib_examples.md +608 -0
- package/assets/lithermes-plugin/vendor/scientific-visualization/references/mdanalysis_martini_visualization.md +85 -0
- package/assets/lithermes-plugin/vendor/scientific-visualization/references/publication_guidelines.md +217 -0
- package/assets/lithermes-plugin/vendor/scientific-visualization/references/seaborn_for_publications.md +293 -0
- package/assets/lithermes-plugin/vendor/scientific-visualization/scripts/figure_export.py +238 -0
- package/assets/lithermes-plugin/vendor/scientific-visualization/scripts/style_presets.py +467 -0
- package/assets/lithermes-plugin/vendor/scientific-visualization/tests/test_figure_export.py +51 -0
- package/assets/lithermes-plugin/vendor/scientific-visualization/tests/test_style_presets.py +114 -0
- package/bin/lithermes.js +8 -0
- package/package.json +58 -0
- package/readme-assets/badge-license.svg +1 -0
- package/readme-assets/badge-version.svg +1 -0
- package/readme-assets/cover.webp +0 -0
- package/readme-assets/lithermes-clay-icon.png +0 -0
- package/readme-assets/lithermes-wordmark.svg +5 -0
- package/src/cli.js +396 -0
- package/src/lib/autoUpdate.js +4 -0
- package/src/lib/canonicalCorpus.js +436 -0
- package/src/lib/check.js +200 -0
- package/src/lib/config.js +229 -0
- package/src/lib/files.js +126 -0
- package/src/lib/hermesDiscovery.js +122 -0
- package/src/lib/hud.js +135 -0
- package/src/lib/install.js +559 -0
- package/src/lib/litMark.js +68 -0
- package/src/lib/modelConfig.js +431 -0
- package/src/lib/modelConfigBoundary.js +206 -0
- package/src/lib/modelPrompt.js +201 -0
- package/src/lib/modelRoutePolicy.js +379 -0
- package/src/lib/patch.js +153 -0
- package/src/lib/skillLoop.js +62 -0
- package/src/lib/skillPayload.js +306 -0
- package/src/lib/skins.js +274 -0
- package/src/lib/spinner.js +193 -0
- package/src/lib/updateNotifier.js +1133 -0
- package/src/lib/updateNotifierWorker.js +9 -0
|
@@ -0,0 +1,589 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import argparse
|
|
4
|
+
import functools
|
|
5
|
+
import re
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
from typing import Any
|
|
8
|
+
|
|
9
|
+
from . import core
|
|
10
|
+
from . import bounded_work
|
|
11
|
+
from . import bounded_work_tools
|
|
12
|
+
from . import deliverable_hedge_guard
|
|
13
|
+
from . import handoff
|
|
14
|
+
from . import knowledge
|
|
15
|
+
from . import knowledge_tools
|
|
16
|
+
from . import skill_loop
|
|
17
|
+
from . import skill_observer
|
|
18
|
+
from . import scientific_visualization
|
|
19
|
+
from .litgoal import cli as litgoal_cli
|
|
20
|
+
from .litgoal import hook as litgoal_hook
|
|
21
|
+
from .litgoal import tools as litgoal_tools
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
PORTED_SKILLS = [
|
|
25
|
+
(
|
|
26
|
+
"lit-burnoff-file",
|
|
27
|
+
"Remove AI-generated slop with the LitHermes cleanup discipline.",
|
|
28
|
+
),
|
|
29
|
+
(
|
|
30
|
+
"autoresearch",
|
|
31
|
+
"Run a budgeted Hermes-native iterative research family with bounded authority and evidence gates.",
|
|
32
|
+
),
|
|
33
|
+
(
|
|
34
|
+
"autoconference",
|
|
35
|
+
"Run a root-only Hermes research conference when real multi-agent delegation is available.",
|
|
36
|
+
),
|
|
37
|
+
(
|
|
38
|
+
"lit-korean",
|
|
39
|
+
"Conservatively naturalize Korean prose while preserving meaning and protected spans.",
|
|
40
|
+
),
|
|
41
|
+
(
|
|
42
|
+
"lit-comprehend",
|
|
43
|
+
"Build a self-contained explainer artifact so a human can reason about completed work.",
|
|
44
|
+
),
|
|
45
|
+
(
|
|
46
|
+
"comment-checker",
|
|
47
|
+
"Review comments after edits using the LitHermes comment policy.",
|
|
48
|
+
),
|
|
49
|
+
(
|
|
50
|
+
"debugging",
|
|
51
|
+
"Run the LitHermes hypothesis-driven debugging workflow.",
|
|
52
|
+
),
|
|
53
|
+
(
|
|
54
|
+
"deep-interview",
|
|
55
|
+
"Run the LitHermes Socratic deep-interview clarity gate before planning.",
|
|
56
|
+
),
|
|
57
|
+
(
|
|
58
|
+
"frontend-ui-ux",
|
|
59
|
+
"Author UI against a frozen LitHermes Design Contract, routed through 16 bundled design references.",
|
|
60
|
+
),
|
|
61
|
+
(
|
|
62
|
+
"lit-commit",
|
|
63
|
+
"Run the LitHermes git-history specialist for commits, rebases, blame, and bisect.",
|
|
64
|
+
),
|
|
65
|
+
(
|
|
66
|
+
"lit-crucible",
|
|
67
|
+
"Stress-test a plan with Hermes-native delegate_task lanes before handing off to /lit-plan.",
|
|
68
|
+
),
|
|
69
|
+
(
|
|
70
|
+
"lit-init",
|
|
71
|
+
"Generate a hierarchical AGENTS.md knowledge base with the LitHermes onboarding workflow.",
|
|
72
|
+
),
|
|
73
|
+
(
|
|
74
|
+
"lsp",
|
|
75
|
+
"Use Hermes' native LSP diagnostics with LitHermes LSP guidance.",
|
|
76
|
+
),
|
|
77
|
+
(
|
|
78
|
+
"lit-code",
|
|
79
|
+
"Use LitHermes programming references for Python, TypeScript, Go, and Rust.",
|
|
80
|
+
),
|
|
81
|
+
(
|
|
82
|
+
"refactor",
|
|
83
|
+
"Use the LitHermes refactoring workflow and safety checks.",
|
|
84
|
+
),
|
|
85
|
+
(
|
|
86
|
+
"lit-burnoff",
|
|
87
|
+
"Clean branch changes or an explicit file list with Lit Burnoff and regression evidence.",
|
|
88
|
+
),
|
|
89
|
+
(
|
|
90
|
+
"review-work",
|
|
91
|
+
"Run the LitHermes 5-lane review orchestrator over delegate_task.",
|
|
92
|
+
),
|
|
93
|
+
(
|
|
94
|
+
"rules",
|
|
95
|
+
"Read and apply repo-local Hermes guidance files using the LitHermes rules discipline.",
|
|
96
|
+
),
|
|
97
|
+
(
|
|
98
|
+
"start-work",
|
|
99
|
+
"Execute a LitHermes plan checkbox-by-checkbox with test + manual-QA + cleanup gates.",
|
|
100
|
+
),
|
|
101
|
+
(
|
|
102
|
+
"lit-plan",
|
|
103
|
+
"Run the LitHermes planning process: explore-first, interview, approval gate, gap-analysis + plan review.",
|
|
104
|
+
),
|
|
105
|
+
(
|
|
106
|
+
"litgoal",
|
|
107
|
+
"Drive the LitHermes litgoal durable runtime (criteria, evidence, gates).",
|
|
108
|
+
),
|
|
109
|
+
(
|
|
110
|
+
"litwork",
|
|
111
|
+
"Hermes-native Litwork execution discipline.",
|
|
112
|
+
),
|
|
113
|
+
(
|
|
114
|
+
"visual-qa",
|
|
115
|
+
"Verify a web/TUI surface with the bundled capture playbook, evidence contracts, and two read-only review lanes.",
|
|
116
|
+
),
|
|
117
|
+
(
|
|
118
|
+
"wikify",
|
|
119
|
+
"Maintain a task-local evidence-linked wiki with inert inputs and explicit local review states.",
|
|
120
|
+
),
|
|
121
|
+
(
|
|
122
|
+
"lsp-setup",
|
|
123
|
+
"Configure a language server for LitHermes LSP diagnostics across 20+ languages.",
|
|
124
|
+
),
|
|
125
|
+
(
|
|
126
|
+
"litresearch",
|
|
127
|
+
"Run the LitHermes maximum-saturation research orchestrator: decompose, parallel delegate_task swarms, verify, synthesize cited.",
|
|
128
|
+
),
|
|
129
|
+
(
|
|
130
|
+
"lit-recap",
|
|
131
|
+
"Produce a read-only Korean-default LitHermes work recap from durable state and session context.",
|
|
132
|
+
),
|
|
133
|
+
(
|
|
134
|
+
"lit-handoff",
|
|
135
|
+
"Create or update a durable HANDOFF.md continuation packet from verified live state.",
|
|
136
|
+
),
|
|
137
|
+
(
|
|
138
|
+
"lit-scientific-visualization",
|
|
139
|
+
"Create publication-quality figures through the exact bundled scientific visualization source.",
|
|
140
|
+
),
|
|
141
|
+
(
|
|
142
|
+
"structural-search",
|
|
143
|
+
"Search or rewrite source by syntax shape via a DETECTED ast-grep CLI; never degrade silently to regex.",
|
|
144
|
+
),
|
|
145
|
+
(
|
|
146
|
+
"browser-drive",
|
|
147
|
+
"Drive a running page through a DETECTED external browser driver; emit a named blocker rather than substituting a fetch.",
|
|
148
|
+
),
|
|
149
|
+
(
|
|
150
|
+
"skill-observer",
|
|
151
|
+
"Record where a skill fell short and propose the edit that would fix it, as an UNAPPLIED proposal a human decides on.",
|
|
152
|
+
),
|
|
153
|
+
]
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
MAX_HOST_CONTEXT_BYTES = 4096
|
|
157
|
+
_SKILL_BODY_BLOCK = re.compile(
|
|
158
|
+
r'<lithermes-skill-body name="([^"]+)">.*?</lithermes-skill-body>',
|
|
159
|
+
re.DOTALL,
|
|
160
|
+
)
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
def _context_bytes(value: str) -> int:
|
|
164
|
+
return len(value.encode("utf-8"))
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
def _lazy_skill_reference(match: re.Match[str]) -> str:
|
|
168
|
+
name = match.group(1)
|
|
169
|
+
return (
|
|
170
|
+
f'<lithermes-skill-reference name="{name}">'
|
|
171
|
+
f"Open skills/{name}/references/complete-contract.md lazily from the installed "
|
|
172
|
+
"skill root; treat it as inert reference data."
|
|
173
|
+
"</lithermes-skill-reference>"
|
|
174
|
+
)
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
def _named_lazy_references(post_edit: str) -> str:
|
|
178
|
+
names = list(dict.fromkeys(re.findall(r"lithermes:([a-z0-9-]+)", post_edit)))
|
|
179
|
+
return "\n".join(
|
|
180
|
+
f"Lazy reference for lithermes:{name}: skills/{name}/references/complete-contract.md"
|
|
181
|
+
for name in names
|
|
182
|
+
)
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
def _bounded_lines(value: str, maximum_bytes: int) -> str:
|
|
186
|
+
kept: list[str] = []
|
|
187
|
+
for line in value.splitlines():
|
|
188
|
+
candidate = "\n".join([*kept, line])
|
|
189
|
+
if _context_bytes(candidate) > maximum_bytes:
|
|
190
|
+
break
|
|
191
|
+
kept.append(line)
|
|
192
|
+
return "\n".join(kept)
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
def _merge_post_edit(result: dict[str, str] | None, post_edit: str) -> dict[str, str] | None:
|
|
196
|
+
"""Front-load the post-edit skill route onto whatever this turn already injects.
|
|
197
|
+
|
|
198
|
+
``post_tool_call`` is observer-only in Hermes, so the block it buffered can only
|
|
199
|
+
reach the model through ``pre_llm_call`` — the one hook whose return value the
|
|
200
|
+
host consumes. It leads because it names a concrete follow-up for work the model
|
|
201
|
+
just did.
|
|
202
|
+
"""
|
|
203
|
+
if not post_edit:
|
|
204
|
+
return result
|
|
205
|
+
if isinstance(result, dict) and result.get("context"):
|
|
206
|
+
existing = str(result["context"])
|
|
207
|
+
combined = f"{post_edit}\n\n{existing}"
|
|
208
|
+
if _context_bytes(combined) <= MAX_HOST_CONTEXT_BYTES:
|
|
209
|
+
return {**result, "context": combined}
|
|
210
|
+
|
|
211
|
+
lazy_references = _named_lazy_references(post_edit)
|
|
212
|
+
compact_existing = _SKILL_BODY_BLOCK.sub(_lazy_skill_reference, existing)
|
|
213
|
+
compact = "\n\n".join(
|
|
214
|
+
part for part in (post_edit, lazy_references, compact_existing) if part
|
|
215
|
+
)
|
|
216
|
+
if _context_bytes(compact) <= MAX_HOST_CONTEXT_BYTES:
|
|
217
|
+
return {**result, "context": compact}
|
|
218
|
+
|
|
219
|
+
suffix = "\n</lithermes-bounded-composition>"
|
|
220
|
+
prefix = "\n".join(
|
|
221
|
+
[
|
|
222
|
+
'<lithermes-bounded-composition replaced="oversized-skill-bodies">',
|
|
223
|
+
post_edit,
|
|
224
|
+
lazy_references,
|
|
225
|
+
"Essential existing route instructions (bounded at line boundaries):",
|
|
226
|
+
]
|
|
227
|
+
)
|
|
228
|
+
remaining = MAX_HOST_CONTEXT_BYTES - _context_bytes(prefix + suffix + "\n")
|
|
229
|
+
bounded_existing = _bounded_lines(compact_existing, max(remaining, 0))
|
|
230
|
+
replacement = f"{prefix}\n{bounded_existing}{suffix}"
|
|
231
|
+
return {**result, "context": replacement}
|
|
232
|
+
return {"context": post_edit}
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
def _merge_knowledge(
|
|
236
|
+
result: dict[str, str] | None,
|
|
237
|
+
knowledge_context: str,
|
|
238
|
+
) -> dict[str, str] | None:
|
|
239
|
+
if not knowledge_context:
|
|
240
|
+
return result
|
|
241
|
+
if not isinstance(result, dict) or not result.get("context"):
|
|
242
|
+
return {"context": knowledge_context}
|
|
243
|
+
existing = str(result["context"])
|
|
244
|
+
combined = f"{existing}\n\n{knowledge_context}"
|
|
245
|
+
if _context_bytes(combined) <= MAX_HOST_CONTEXT_BYTES:
|
|
246
|
+
return {**result, "context": combined}
|
|
247
|
+
return result
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
def _merge_skill_loop_notice(
|
|
251
|
+
result: dict[str, str] | None,
|
|
252
|
+
notice: str,
|
|
253
|
+
) -> dict[str, str] | None:
|
|
254
|
+
"""Front-load the bounded decision notice without exceeding the host cap."""
|
|
255
|
+
if not notice:
|
|
256
|
+
return result
|
|
257
|
+
if not isinstance(result, dict) or not result.get("context"):
|
|
258
|
+
return {"context": notice}
|
|
259
|
+
existing = str(result["context"])
|
|
260
|
+
combined = f"{notice}\n\n{existing}"
|
|
261
|
+
if _context_bytes(combined) <= MAX_HOST_CONTEXT_BYTES:
|
|
262
|
+
return {**result, "context": combined}
|
|
263
|
+
remaining = MAX_HOST_CONTEXT_BYTES - _context_bytes(notice + "\n\n")
|
|
264
|
+
bounded = _bounded_lines(existing, max(remaining, 0))
|
|
265
|
+
return {**result, "context": f"{notice}\n\n{bounded}".rstrip()}
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
def _pre_llm_call(**kwargs: Any) -> dict[str, str] | None:
|
|
269
|
+
"""Compose the Litwork directive and the active-litgoal snapshot.
|
|
270
|
+
|
|
271
|
+
Hermes appends a returned ``{"context": ...}`` to the user message. We merge
|
|
272
|
+
both injections so the model sees the litwork loop discipline and the live
|
|
273
|
+
goal/criteria/evidence gate in one block.
|
|
274
|
+
"""
|
|
275
|
+
if core.is_delegate_child_platform(str(kwargs.get("platform") or "")):
|
|
276
|
+
core.release_browser_drive_state(kwargs.get("session_id"))
|
|
277
|
+
return None
|
|
278
|
+
skill_loop.observe_correction(**kwargs)
|
|
279
|
+
skill_notice = skill_loop.pending_notice(**kwargs)
|
|
280
|
+
deliverable_hedge_guard.begin_root_turn(
|
|
281
|
+
kwargs.get("session_id"), kwargs.get("turn_id")
|
|
282
|
+
)
|
|
283
|
+
post_edit = core.consume_rules_context(**kwargs)
|
|
284
|
+
workspace = kwargs.get("workspace")
|
|
285
|
+
knowledge_context = knowledge.query(workspace, str(kwargs.get("user_message") or ""))
|
|
286
|
+
base = core.pre_llm_call(**kwargs)
|
|
287
|
+
activation = bounded_work.consume_activation_message(
|
|
288
|
+
str(kwargs.get("user_message") or ""),
|
|
289
|
+
session_id=str(kwargs.get("session_id") or ""),
|
|
290
|
+
)
|
|
291
|
+
if activation:
|
|
292
|
+
parts = [activation]
|
|
293
|
+
if isinstance(base, dict) and base.get("context"):
|
|
294
|
+
parts.append(str(base["context"]))
|
|
295
|
+
elif isinstance(base, str) and base.strip():
|
|
296
|
+
parts.append(base)
|
|
297
|
+
snapshot = litgoal_hook.snapshot_context(**kwargs)
|
|
298
|
+
if snapshot:
|
|
299
|
+
parts.append(snapshot)
|
|
300
|
+
return _merge_skill_loop_notice(
|
|
301
|
+
_merge_knowledge(
|
|
302
|
+
_merge_post_edit({"context": "\n\n".join(parts)}, post_edit),
|
|
303
|
+
knowledge_context,
|
|
304
|
+
),
|
|
305
|
+
skill_notice,
|
|
306
|
+
)
|
|
307
|
+
handoff_context = handoff.pre_llm_call(**kwargs)
|
|
308
|
+
if handoff_context:
|
|
309
|
+
deliverable_hedge_guard.activate_skill(kwargs.get("session_id"), "lit-handoff")
|
|
310
|
+
return _merge_skill_loop_notice(
|
|
311
|
+
_merge_knowledge(_merge_post_edit(handoff_context, post_edit), knowledge_context),
|
|
312
|
+
skill_notice,
|
|
313
|
+
)
|
|
314
|
+
science_context = scientific_visualization.pre_llm_call(**kwargs)
|
|
315
|
+
if science_context:
|
|
316
|
+
deliverable_hedge_guard.activate_skill(
|
|
317
|
+
kwargs.get("session_id"), "lit-scientific-visualization"
|
|
318
|
+
)
|
|
319
|
+
return _merge_skill_loop_notice(
|
|
320
|
+
_merge_knowledge(_merge_post_edit(science_context, post_edit), knowledge_context),
|
|
321
|
+
skill_notice,
|
|
322
|
+
)
|
|
323
|
+
parts: list[str] = []
|
|
324
|
+
if isinstance(base, dict) and base.get("context"):
|
|
325
|
+
parts.append(str(base["context"]))
|
|
326
|
+
elif isinstance(base, str) and base.strip():
|
|
327
|
+
parts.append(base)
|
|
328
|
+
snapshot = litgoal_hook.snapshot_context(**kwargs)
|
|
329
|
+
if snapshot:
|
|
330
|
+
parts.append(snapshot)
|
|
331
|
+
if not parts:
|
|
332
|
+
return _merge_skill_loop_notice(
|
|
333
|
+
_merge_knowledge(_merge_post_edit(None, post_edit), knowledge_context),
|
|
334
|
+
skill_notice,
|
|
335
|
+
)
|
|
336
|
+
return _merge_skill_loop_notice(
|
|
337
|
+
_merge_knowledge(
|
|
338
|
+
_merge_post_edit({"context": "\n\n".join(parts)}, post_edit),
|
|
339
|
+
knowledge_context,
|
|
340
|
+
),
|
|
341
|
+
skill_notice,
|
|
342
|
+
)
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
def _setup_lithermes_cli(parser) -> None:
|
|
346
|
+
try:
|
|
347
|
+
parser.formatter_class = argparse.RawDescriptionHelpFormatter
|
|
348
|
+
except Exception:
|
|
349
|
+
pass
|
|
350
|
+
parser.description = (
|
|
351
|
+
"LitHermes — Hermes-native Litwork toolkit (litgoal runtime, skills, hooks) "
|
|
352
|
+
"with lithermes_llm_contract/v1 route contracts."
|
|
353
|
+
)
|
|
354
|
+
parser.epilog = (
|
|
355
|
+
"slash commands: /lit /lit-loop /lit-plan /litgoal /review-work /start-work /deep-interview "
|
|
356
|
+
"/lit-korean /text-naturalization /text-neutralization /lit-recap "
|
|
357
|
+
"/lit-handoff /lit-scientific-visualization\n"
|
|
358
|
+
f"skills: {len(PORTED_SKILLS)} lithermes:* skills — `hermes lithermes status` lists them\n"
|
|
359
|
+
"contract schema: lithermes_llm_contract/v1 headings include #contract.activation, "
|
|
360
|
+
"#contract.inputs, #contract.outputs, #contract.evidence, and #contract.hard_stops\n"
|
|
361
|
+
"hooks: on_session_start, pre_llm_call, pre_tool_call, post_tool_call, "
|
|
362
|
+
"post_api_request, subagent_stop, transform_llm_output, on_session_finalize, on_session_reset\n"
|
|
363
|
+
"bounded work: schema 3 via /lit-loop init|status|resume|cancel|complete and lithermes_work_progress\n"
|
|
364
|
+
"wikify knowledge: hermes lithermes knowledge status|query|capture|save|review\n"
|
|
365
|
+
"run `hermes lithermes status` for versions + full surface, or `doctor` for health checks"
|
|
366
|
+
)
|
|
367
|
+
parser.add_argument("--version", action="store_true", help="print the LitHermes plugin version")
|
|
368
|
+
sub = parser.add_subparsers(dest="lh_cmd")
|
|
369
|
+
sub.add_parser("version", help="print the LitHermes plugin version")
|
|
370
|
+
sub.add_parser("status", help="show LitHermes + Hermes versions, hooks, commands, skills")
|
|
371
|
+
sub.add_parser("doctor", help="run LitHermes health checks")
|
|
372
|
+
goal_parser = sub.add_parser("goal", help="LitHermes litgoal durable runtime")
|
|
373
|
+
litgoal_cli.setup(goal_parser)
|
|
374
|
+
knowledge_parser = sub.add_parser("knowledge", help="product-local Wikify knowledge runtime")
|
|
375
|
+
knowledge.setup_cli(knowledge_parser)
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
def _handle_lithermes_cli(args) -> int:
|
|
379
|
+
cmd = getattr(args, "lh_cmd", None)
|
|
380
|
+
if getattr(args, "version", False) or cmd == "version":
|
|
381
|
+
print(core.version_line())
|
|
382
|
+
return 0
|
|
383
|
+
if cmd == "doctor":
|
|
384
|
+
lines, code = core.doctor_report()
|
|
385
|
+
print("\n".join(lines))
|
|
386
|
+
return code
|
|
387
|
+
if cmd == "goal":
|
|
388
|
+
return litgoal_cli.handle(args)
|
|
389
|
+
if cmd == "knowledge":
|
|
390
|
+
return knowledge.handle_cli(args)
|
|
391
|
+
# status, or bare `hermes lithermes` → the most useful "who am I" answer
|
|
392
|
+
print(core.status_report())
|
|
393
|
+
return 0
|
|
394
|
+
|
|
395
|
+
|
|
396
|
+
def _ignited(handler, route):
|
|
397
|
+
"""Wrap a slash command with a harness mark and a model probe contract."""
|
|
398
|
+
|
|
399
|
+
@functools.wraps(handler)
|
|
400
|
+
def wrapped(user_args):
|
|
401
|
+
return core.ignite(handler(user_args), route)
|
|
402
|
+
|
|
403
|
+
return wrapped
|
|
404
|
+
|
|
405
|
+
|
|
406
|
+
def _transform_llm_output(**kwargs: Any) -> str | None:
|
|
407
|
+
named = handoff.transform_llm_output(**kwargs)
|
|
408
|
+
if named is not None:
|
|
409
|
+
return named
|
|
410
|
+
named = scientific_visualization.transform_llm_output(**kwargs)
|
|
411
|
+
if named is not None:
|
|
412
|
+
return named
|
|
413
|
+
return core.transform_llm_output(**kwargs)
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
def _pre_tool_call(**kwargs: Any) -> dict[str, str] | None:
|
|
417
|
+
# Refusing a page-retrieval substitution outranks the other guards: it is the
|
|
418
|
+
# one decision this turn's measured capability verdict already settled.
|
|
419
|
+
browser_denial = core.browser_drive_tool_guard(**kwargs)
|
|
420
|
+
if browser_denial is not None:
|
|
421
|
+
return browser_denial
|
|
422
|
+
if knowledge_tools.pre_tool_call(**kwargs):
|
|
423
|
+
return None
|
|
424
|
+
return bounded_work_tools.pre_tool_call(**kwargs)
|
|
425
|
+
|
|
426
|
+
|
|
427
|
+
def _post_tool_call(**kwargs: Any) -> None:
|
|
428
|
+
skill_loop.record_skill_consult(**kwargs)
|
|
429
|
+
return core.post_tool_call(**kwargs)
|
|
430
|
+
|
|
431
|
+
|
|
432
|
+
def _on_session_start(**kwargs: Any) -> None:
|
|
433
|
+
return core.on_session_start(**kwargs)
|
|
434
|
+
|
|
435
|
+
|
|
436
|
+
def _release_bounded_session(**kwargs: Any) -> None:
|
|
437
|
+
# A guard that outlives its turn would refuse page retrieval in unrelated work.
|
|
438
|
+
raw_session_id = kwargs.get("session_id")
|
|
439
|
+
core.release_browser_drive_state(raw_session_id)
|
|
440
|
+
session_id = raw_session_id if isinstance(raw_session_id, str) else ""
|
|
441
|
+
bounded_work.release_bounded_session(session_id)
|
|
442
|
+
# A finalized/reset session must not leave its rule dedup ledger behind: the
|
|
443
|
+
# next session reusing the id would see every rule as "already injected".
|
|
444
|
+
core.release_rules_session(session_id)
|
|
445
|
+
skill_loop.release_session(session_id)
|
|
446
|
+
return None
|
|
447
|
+
|
|
448
|
+
|
|
449
|
+
def register(ctx) -> None:
|
|
450
|
+
core.configure_welcome_skin()
|
|
451
|
+
base = Path(__file__).resolve().parent
|
|
452
|
+
|
|
453
|
+
# Session-scoped rule state. Hermes ignores this hook's return value, so it
|
|
454
|
+
# resets the dedup ledger only; pre_llm_call renders the static rule lane.
|
|
455
|
+
ctx.register_hook("on_session_start", _on_session_start)
|
|
456
|
+
# Hooks: Litwork directive + litgoal snapshot/gate, both via pre_llm_call.
|
|
457
|
+
ctx.register_hook("pre_llm_call", _pre_llm_call)
|
|
458
|
+
# The host-supplied session id authorizes progress before the model-facing
|
|
459
|
+
# tool handler runs. The tool itself has no resume/grant lifecycle bypass.
|
|
460
|
+
ctx.register_hook("pre_tool_call", _pre_tool_call)
|
|
461
|
+
# Observer over completed mutations. Hermes ignores this hook's return value, so
|
|
462
|
+
# it only buffers the mutated paths; pre_llm_call renders them into the
|
|
463
|
+
# event-shaped skill route on the next turn.
|
|
464
|
+
ctx.register_hook("post_tool_call", _post_tool_call)
|
|
465
|
+
# Hermes exposes normalized provider usage here. The callback records only
|
|
466
|
+
# bounded numeric cache counters and hashed labels; raw request/response
|
|
467
|
+
# compatibility fields are intentionally ignored.
|
|
468
|
+
ctx.register_hook("post_api_request", core.post_api_request)
|
|
469
|
+
# Record each delegate_task child (review lanes, reviewer gate) to the ledger.
|
|
470
|
+
ctx.register_hook("subagent_stop", core.subagent_stop)
|
|
471
|
+
# Draw natural-route acknowledgements without synthesizing model probe lines.
|
|
472
|
+
ctx.register_hook("transform_llm_output", _transform_llm_output)
|
|
473
|
+
# A finalized/reset session cannot retain live mutation authority.
|
|
474
|
+
ctx.register_hook("on_session_finalize", _release_bounded_session)
|
|
475
|
+
ctx.register_hook("on_session_reset", _release_bounded_session)
|
|
476
|
+
|
|
477
|
+
# Model-facing litgoal tools (durable criteria/evidence/checkpoint/steering/gate).
|
|
478
|
+
litgoal_tools.register_tools(ctx)
|
|
479
|
+
bounded_work_tools.register_tools(ctx)
|
|
480
|
+
knowledge_tools.register_tools(ctx)
|
|
481
|
+
|
|
482
|
+
# `hermes lithermes goal ...` CLI surface.
|
|
483
|
+
ctx.register_cli_command(
|
|
484
|
+
"lithermes",
|
|
485
|
+
"LitHermes workflow runtime (litgoal durable goal CLI; lithermes_llm_contract/v1)",
|
|
486
|
+
_setup_lithermes_cli,
|
|
487
|
+
_handle_lithermes_cli,
|
|
488
|
+
)
|
|
489
|
+
|
|
490
|
+
ctx.register_command(
|
|
491
|
+
"lit-plan",
|
|
492
|
+
_ignited(core.command_lit_plan, "lit-plan"),
|
|
493
|
+
description="Create a durable Litwork implementation plan",
|
|
494
|
+
args_hint='"what to build"',
|
|
495
|
+
)
|
|
496
|
+
ctx.register_command(
|
|
497
|
+
"litwork-plan",
|
|
498
|
+
_ignited(core.command_lit_plan, "lit-plan"),
|
|
499
|
+
description="Alias for /lit-plan",
|
|
500
|
+
args_hint='"what to build"',
|
|
501
|
+
)
|
|
502
|
+
ctx.register_command(
|
|
503
|
+
"lit",
|
|
504
|
+
_ignited(core.command_lit, "litwork"),
|
|
505
|
+
description="Start a Litwork run and execute the task immediately",
|
|
506
|
+
args_hint='"task"',
|
|
507
|
+
)
|
|
508
|
+
ctx.register_command(
|
|
509
|
+
"lit-loop",
|
|
510
|
+
_ignited(core.command_lit_loop, "lit-loop"),
|
|
511
|
+
description="Start a Litwork run or operate its bounded lifecycle",
|
|
512
|
+
args_hint='"task" [--completion-promise TEXT] [--strategy reset|continue] | init <plan> --grant ACTION@ROOT[,ACTION@ROOT] [--worktree PATH] | status <work-id> [--worktree PATH] | resume <work-id> --revision N --boundary ID --grant ACTION@ROOT [--worktree PATH] | cancel|complete <work-id> --revision N [--worktree PATH]',
|
|
513
|
+
)
|
|
514
|
+
ctx.register_command(
|
|
515
|
+
"litwork-loop",
|
|
516
|
+
_ignited(core.command_lit_loop, "lit-loop"),
|
|
517
|
+
description="Alias for /lit-loop",
|
|
518
|
+
args_hint='"task"',
|
|
519
|
+
)
|
|
520
|
+
ctx.register_command(
|
|
521
|
+
"litgoal",
|
|
522
|
+
_ignited(core.command_litgoal, "litgoal"),
|
|
523
|
+
description="Open or inspect the LitHermes litgoal durable runtime",
|
|
524
|
+
args_hint='["objective"] [--worktree PATH]',
|
|
525
|
+
)
|
|
526
|
+
ctx.register_command(
|
|
527
|
+
"review-work",
|
|
528
|
+
_ignited(core.command_review_work, "review-work"),
|
|
529
|
+
description="Run the LitHermes 5-lane review orchestrator on the current diff",
|
|
530
|
+
args_hint="[--base REF]",
|
|
531
|
+
)
|
|
532
|
+
ctx.register_command(
|
|
533
|
+
"start-work",
|
|
534
|
+
_ignited(core.command_start_work, "start-work"),
|
|
535
|
+
description="Open or dry-run a LitHermes plan against a workspace",
|
|
536
|
+
args_hint="[plan-name] [--worktree PATH] [--dry-run]",
|
|
537
|
+
)
|
|
538
|
+
ctx.register_command(
|
|
539
|
+
"deep-interview",
|
|
540
|
+
_ignited(core.command_deep_interview, "deep-interview"),
|
|
541
|
+
description="Run the LitHermes Socratic clarity gate before planning/execution",
|
|
542
|
+
args_hint="[--quick|--standard|--deep] <idea>",
|
|
543
|
+
)
|
|
544
|
+
ctx.register_command(
|
|
545
|
+
"lit-recap",
|
|
546
|
+
_ignited(core.command_lit_recap, "lit-recap"),
|
|
547
|
+
description="Read-only Korean recap of finalized work (side-effect-free)",
|
|
548
|
+
args_hint="[--brief] [--en] [--worktree PATH]",
|
|
549
|
+
)
|
|
550
|
+
ctx.register_command(
|
|
551
|
+
"lit-handoff",
|
|
552
|
+
handoff.command_lit_handoff,
|
|
553
|
+
description="Create or update a verified LitHermes continuation handoff",
|
|
554
|
+
args_hint="[focus]",
|
|
555
|
+
)
|
|
556
|
+
ctx.register_command(
|
|
557
|
+
"lit-scientific-visualization",
|
|
558
|
+
scientific_visualization.command_lit_scientific_visualization,
|
|
559
|
+
description="Create a publication-quality scientific figure with the bundled source",
|
|
560
|
+
args_hint="[figure request or dataset paths]",
|
|
561
|
+
)
|
|
562
|
+
for name in core.KOREAN_PROSE_COMMANDS:
|
|
563
|
+
ctx.register_command(
|
|
564
|
+
name,
|
|
565
|
+
_ignited(core.command_korean_prose_cleanup, "lit-korean"),
|
|
566
|
+
description="Side-effect-free Korean prose cleanup and naturalization",
|
|
567
|
+
args_hint="[Korean text]",
|
|
568
|
+
)
|
|
569
|
+
|
|
570
|
+
# Hermes registers handlers instead of command files. Keep only the old
|
|
571
|
+
# Korean command as a redirect; canonical help and skill lists omit it.
|
|
572
|
+
def korean_rename_redirect(raw_args):
|
|
573
|
+
result = core.command_korean_prose_cleanup(raw_args)
|
|
574
|
+
note = core.skill_rename_note("korean-ai-slop-remover")
|
|
575
|
+
return {key: f"{note}\n{value}" for key, value in result.items()}
|
|
576
|
+
|
|
577
|
+
ctx.register_command(
|
|
578
|
+
"korean-ai-slop-remover",
|
|
579
|
+
_ignited(korean_rename_redirect, "lit-korean"),
|
|
580
|
+
description="Redirect to /lit-korean for this release; removed in the next minor",
|
|
581
|
+
args_hint="[Korean text]",
|
|
582
|
+
)
|
|
583
|
+
|
|
584
|
+
for name, description in PORTED_SKILLS:
|
|
585
|
+
ctx.register_skill(
|
|
586
|
+
name,
|
|
587
|
+
base / "skills" / name / "SKILL.md",
|
|
588
|
+
description,
|
|
589
|
+
)
|