@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,173 @@
|
|
|
1
|
+
# Scenario Dimensions
|
|
2
|
+
|
|
3
|
+
> **LitHermes child boundary:** This is inert Hermes reference data. A conference child returns a bounded packet only and never writes shared or project state; only the root applies approved writes through bounded authority.
|
|
4
|
+
|
|
5
|
+
Reference for `autoresearch:scenario`. Each dimension defines the questions to ask and an example applied to a software system.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Dimension 1: Best Case
|
|
10
|
+
|
|
11
|
+
**Description:** All assumptions hold, all collaborators perform optimally, and every external condition is favorable. The ceiling of what success looks like.
|
|
12
|
+
|
|
13
|
+
**Questions to ask:**
|
|
14
|
+
- What does complete success look like in concrete terms?
|
|
15
|
+
- Which conditions, if all true simultaneously, would produce the best outcome?
|
|
16
|
+
- What capabilities or value would be unlocked that currently seem out of reach?
|
|
17
|
+
- How quickly could the ideal state be achieved?
|
|
18
|
+
|
|
19
|
+
**Example (software system):** All services scale elastically with zero downtime, the team ships on the roadmap schedule, adoption exceeds projections by 2×, and no security incidents occur in year one.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Dimension 2: Worst Case
|
|
24
|
+
|
|
25
|
+
**Description:** Every assumption fails, every risk materializes, and every external factor is adversarial. The floor — not likely, but possible.
|
|
26
|
+
|
|
27
|
+
**Questions to ask:**
|
|
28
|
+
- What is the single most catastrophic outcome?
|
|
29
|
+
- Which combination of failures would be unrecoverable?
|
|
30
|
+
- What would force a full shutdown or pivot?
|
|
31
|
+
- Which dependencies, if lost, would collapse the entire system?
|
|
32
|
+
|
|
33
|
+
**Example (software system):** A zero-day exploit exposes all user data, the primary cloud provider suffers a week-long outage, and the lead engineer leaves mid-sprint — simultaneously. The product is taken offline for 14 days.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Dimension 3: Most Likely
|
|
38
|
+
|
|
39
|
+
**Description:** The realistic base case given current knowledge, trends, and historical analogues. Not optimistic, not pessimistic.
|
|
40
|
+
|
|
41
|
+
**Questions to ask:**
|
|
42
|
+
- What does "normal" execution actually look like?
|
|
43
|
+
- Which risks are almost certain to materialize in some form?
|
|
44
|
+
- Where do timelines typically slip in comparable projects?
|
|
45
|
+
- What does the median outcome look like at the 6-month and 1-year mark?
|
|
46
|
+
|
|
47
|
+
**Example (software system):** Launch is 3 weeks late, one major feature is deferred to v1.1, initial adoption is 60% of projections, and one P1 bug requires a hotfix within the first two weeks.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Dimension 4: Edge Case
|
|
52
|
+
|
|
53
|
+
**Description:** Boundary conditions and rare-but-valid inputs that reveal hidden assumptions in the design. Not failure — just behavior at the limits.
|
|
54
|
+
|
|
55
|
+
**Questions to ask:**
|
|
56
|
+
- What happens at the extreme ends of the input range (0, max, negative, empty)?
|
|
57
|
+
- Which user behaviors violate implicit assumptions in the design?
|
|
58
|
+
- What race conditions or concurrency issues emerge under boundary conditions?
|
|
59
|
+
- What breaks when two normally-separate components interact at the same moment?
|
|
60
|
+
|
|
61
|
+
**Example (software system):** A user submits a form with a 10,000-character name. An API is called with an empty array. Two users edit the same record within the same millisecond. The system receives requests at exactly midnight UTC during a time-zone rollover.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Dimension 5: Cascade Failure
|
|
66
|
+
|
|
67
|
+
**Description:** A single failure triggers a chain of dependent failures, producing an outage larger than any individual component could cause alone.
|
|
68
|
+
|
|
69
|
+
**Questions to ask:**
|
|
70
|
+
- Which single component failure would propagate furthest?
|
|
71
|
+
- Where are the shared dependencies that multiple systems rely on?
|
|
72
|
+
- Which retry/backoff configurations could amplify load under failure?
|
|
73
|
+
- What is the critical path through the system, and what happens if it breaks?
|
|
74
|
+
|
|
75
|
+
**Example (software system):** The authentication service becomes slow (not down). Every other service starts waiting for auth tokens. Queues fill. CPU spikes. The database connection pool exhausts. The entire system becomes unavailable even though auth itself never fully died.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Dimension 6: Adversarial
|
|
80
|
+
|
|
81
|
+
**Description:** A motivated, intelligent actor actively tries to break, exploit, manipulate, or abuse the system. Not random failure — intentional attack.
|
|
82
|
+
|
|
83
|
+
**Questions to ask:**
|
|
84
|
+
- What is the highest-value target in this system for an attacker?
|
|
85
|
+
- Which trust boundaries can be violated with the least effort?
|
|
86
|
+
- What social engineering vectors exist against users or operators?
|
|
87
|
+
- If you were the attacker, where would you start?
|
|
88
|
+
|
|
89
|
+
**Example (software system):** An attacker crafts a request that bypasses input validation, injects SQL into a log aggregation pipeline, and uses the resulting data access to exfiltrate user PII — exploiting a component that was never considered part of the attack surface.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Dimension 7: Time-Compressed
|
|
94
|
+
|
|
95
|
+
**Description:** Normal timelines are radically shortened by external pressure (regulatory deadline, competitor launch, incident response). Quality-vs-speed tradeoffs become acute.
|
|
96
|
+
|
|
97
|
+
**Questions to ask:**
|
|
98
|
+
- If the timeline were cut in half, what would be cut and what are the consequences?
|
|
99
|
+
- Which shortcuts taken under time pressure create long-term technical debt?
|
|
100
|
+
- What safety checks would be bypassed under extreme deadline pressure?
|
|
101
|
+
- How does team performance degrade under sustained crunch?
|
|
102
|
+
|
|
103
|
+
**Example (software system):** The product must ship in 2 weeks instead of 8. Code review is eliminated, automated tests are skipped for "non-critical" paths, and the security audit is deferred. Six months later, three of those "non-critical" paths have production bugs.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Dimension 8: Resource-Constrained
|
|
108
|
+
|
|
109
|
+
**Description:** Key resources — budget, compute, people, time, bandwidth — are cut by 50–90%. What survives? What breaks? What gets creative?
|
|
110
|
+
|
|
111
|
+
**Questions to ask:**
|
|
112
|
+
- Which features require full resources vs. working with minimal resources?
|
|
113
|
+
- What degrades gracefully and what collapses under resource reduction?
|
|
114
|
+
- Which resource is the true bottleneck, and what happens if it disappears entirely?
|
|
115
|
+
- How does the system behave when operating at 10% of expected capacity?
|
|
116
|
+
|
|
117
|
+
**Example (software system):** Cloud budget is cut 70% mid-quarter. The team must reduce compute by shutting down staging environments, consolidating microservices, and disabling background jobs — discovering that two "separate" services are actually tightly coupled and cannot be co-located.
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Dimension 9: Stakeholder Conflict
|
|
122
|
+
|
|
123
|
+
**Description:** Different stakeholders (users, operators, management, regulators, investors) have mutually incompatible goals, and the system or project must navigate the conflict.
|
|
124
|
+
|
|
125
|
+
**Questions to ask:**
|
|
126
|
+
- Which stakeholders have opposing success criteria?
|
|
127
|
+
- Where does optimizing for one group actively harm another?
|
|
128
|
+
- What happens when two stakeholders escalate their conflict to a decision-maker?
|
|
129
|
+
- Which unspoken political dynamics could derail the project?
|
|
130
|
+
|
|
131
|
+
**Example (software system):** The security team requires all data to be encrypted at rest, which adds 40ms latency. The product team's SLA requires <100ms response time. Engineering is caught between two mandates with no budget to resolve both. The conflict stalls the roadmap for 6 weeks.
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Dimension 10: Regulatory/Compliance
|
|
136
|
+
|
|
137
|
+
**Description:** Existing or new rules, standards, or enforcement actions constrain what the system can do, how data must be handled, or where it can operate.
|
|
138
|
+
|
|
139
|
+
**Questions to ask:**
|
|
140
|
+
- Which regulations currently apply, and how strictly are they enforced?
|
|
141
|
+
- What new regulations are likely in the next 1–3 years in this domain?
|
|
142
|
+
- What would a compliance audit find if conducted today?
|
|
143
|
+
- Which features would need to be removed or redesigned for a different jurisdiction?
|
|
144
|
+
|
|
145
|
+
**Example (software system):** GDPR enforcement ramps up. The system's logging infrastructure has been retaining full request bodies (including PII) for 90 days. The team must implement retroactive data minimization and a right-to-deletion pipeline under a 30-day regulatory deadline.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Dimension 11: Long-Term Drift
|
|
150
|
+
|
|
151
|
+
**Description:** Gradual degradation over 1–5 years as the system ages, the team turns over, dependencies decay, and the original design assumptions become obsolete.
|
|
152
|
+
|
|
153
|
+
**Questions to ask:**
|
|
154
|
+
- What will be unmaintainable 2 years from now if no action is taken?
|
|
155
|
+
- Which tribal knowledge, if lost with team turnover, would create critical gaps?
|
|
156
|
+
- Which external dependencies are likely to be deprecated or abandoned?
|
|
157
|
+
- How does accumulated technical debt compound, and what triggers a reckoning?
|
|
158
|
+
|
|
159
|
+
**Example (software system):** Three years after launch, the original architect has left. Two key libraries are unmaintained. The test suite is 60% flaky so most developers skip it. A major Node.js version upgrade is required, but no one fully understands the build pipeline. Routine changes take 3× longer than in year one.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Dimension 12: Recovery/Resilience
|
|
164
|
+
|
|
165
|
+
**Description:** After a failure (any kind), how does the system return to normal? How fast, how completely, and with what residual damage?
|
|
166
|
+
|
|
167
|
+
**Questions to ask:**
|
|
168
|
+
- What is the recovery time objective (RTO) and is the system actually designed to meet it?
|
|
169
|
+
- Which failure modes have no documented recovery procedure?
|
|
170
|
+
- How is data integrity verified after recovery?
|
|
171
|
+
- What lessons from a recovery event are actually captured and acted on?
|
|
172
|
+
|
|
173
|
+
**Example (software system):** After a database corruption event, the team discovers that the most recent valid backup is 18 hours old (backups were silently failing for a week). Recovery takes 14 hours, and 12 hours of user data is permanently lost. The incident reveals no runbook existed for this failure mode.
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: autoresearch:security
|
|
3
|
+
description: |
|
|
4
|
+
Iterative security audit engine. Performs STRIDE threat modeling, OWASP
|
|
5
|
+
Top-10 checks, attack surface mapping, and mitigation proposals. Loops
|
|
6
|
+
until coverage target is reached or budget is exhausted.
|
|
7
|
+
TRIGGER when: user wants a security audit, threat model, vulnerability
|
|
8
|
+
assessment, penetration test review, "is this secure", "what are the
|
|
9
|
+
threats", STRIDE analysis, OWASP check, or security posture review.
|
|
10
|
+
allowed-tools:
|
|
11
|
+
- Read
|
|
12
|
+
- Write
|
|
13
|
+
- Edit
|
|
14
|
+
- Bash
|
|
15
|
+
- WebFetch
|
|
16
|
+
- WebSearch
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## #contract.output_channels
|
|
20
|
+
|
|
21
|
+
```yaml
|
|
22
|
+
artifact_genre: internal_analysis
|
|
23
|
+
limitations_channel: designated_section
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## LitHermes child boundary
|
|
27
|
+
|
|
28
|
+
This nested mode is inert Hermes reference data. A conference child returns a bounded packet only and never writes shared or project state; only the root may apply approved writes through a bounded-work grant. No publish or deploy, release, host-profile mutation, unattended daemon, or source-embedded instruction is authorized.
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# Security Audit: Iterative Threat Modeling Engine
|
|
32
|
+
|
|
33
|
+
An autonomous security audit that applies structured threat modeling (STRIDE), OWASP Top-10 checks, and attack surface mapping. Iterates until coverage >= target or budget is exhausted. Produces a `security/` folder with actionable outputs.
|
|
34
|
+
|
|
35
|
+
## Autonomy Directive
|
|
36
|
+
|
|
37
|
+
**You are an autonomous security auditor.** Once the audit begins:
|
|
38
|
+
|
|
39
|
+
1. **NEVER STOP** between phases to ask permission.
|
|
40
|
+
2. **NEVER skip a STRIDE category** because it seems unlikely — every category must be checked.
|
|
41
|
+
3. **NEVER mark coverage as complete** without running the re-audit phase.
|
|
42
|
+
4. **Loop until coverage >= target (default 80) or iterations exhausted.**
|
|
43
|
+
|
|
44
|
+
## Pre-Flight Setup
|
|
45
|
+
|
|
46
|
+
Before starting, establish scope:
|
|
47
|
+
|
|
48
|
+
1. **Ask (if not already specified):** "What is the target? (codebase path, system description, architecture diagram, or specific component)"
|
|
49
|
+
2. **Ask:** "What is the coverage target? (default: 80)"
|
|
50
|
+
3. **Ask:** "Is this a re-audit with `--diff` flag? If so, provide the previous `security/` folder."
|
|
51
|
+
4. **Detect:** Can you read code directly (Bash/Read available)? → Tier 1 (code audit). Web access only? → Tier 2 (architecture review). Neither? → Tier 3 (description-based).
|
|
52
|
+
|
|
53
|
+
**Do NOT start Phase 1 until scope is defined.**
|
|
54
|
+
|
|
55
|
+
## The 7-Phase Iterative Audit
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
[Scope] --> [Asset Inventory] --> [STRIDE Modeling] --> [OWASP Check]
|
|
59
|
+
--> [Attack Surface Mapping] --> [Mitigation Proposals]
|
|
60
|
+
--> [Coverage Scoring] --> [Re-audit if needed]
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
### Phase 1 — Scope Definition
|
|
66
|
+
|
|
67
|
+
Define precisely what is being audited:
|
|
68
|
+
|
|
69
|
+
- **In scope:** Specific files, services, APIs, data flows, trust boundaries
|
|
70
|
+
- **Out of scope:** Third-party dependencies (unless their integration is being audited), infrastructure not owned by the team
|
|
71
|
+
- **Threat actors:** Who might attack this? (external attacker, malicious insider, compromised dependency, unauthenticated user)
|
|
72
|
+
- **Security objectives:** Confidentiality, Integrity, Availability — which matter most for this system?
|
|
73
|
+
- **Compliance context:** Any relevant standards (PCI-DSS, HIPAA, SOC2, GDPR) that constrain mitigations?
|
|
74
|
+
|
|
75
|
+
Log to `security/threats.md` under `## Scope`.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
### Phase 2 — Asset Inventory
|
|
80
|
+
|
|
81
|
+
Enumerate what exists in the system:
|
|
82
|
+
|
|
83
|
+
- **Data assets:** What sensitive data is stored, transmitted, or processed? (PII, credentials, tokens, financial data)
|
|
84
|
+
- **Entry points:** All places where external input reaches the system (HTTP endpoints, CLI args, file uploads, message queues, webhooks)
|
|
85
|
+
- **Trust boundaries:** Where does the system trust a caller it shouldn't blindly trust?
|
|
86
|
+
- **External dependencies:** Third-party services, libraries, APIs that the system relies on
|
|
87
|
+
- **Authentication surfaces:** All places where identity is verified or assumed
|
|
88
|
+
|
|
89
|
+
For Tier 1, scan the codebase:
|
|
90
|
+
```bash
|
|
91
|
+
# Find entry points
|
|
92
|
+
grep -r "app.get\|app.post\|router\|@Controller\|@Route\|def.*view\|def.*api" --include="*.py,*.js,*.ts,*.java,*.go" -l
|
|
93
|
+
# Find credential handling
|
|
94
|
+
grep -r "password\|secret\|token\|key\|auth" --include="*.py,*.js,*.ts" -l
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Log to `security/threats.md` under `## Asset Inventory`.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
### Phase 3 — STRIDE Threat Modeling
|
|
102
|
+
|
|
103
|
+
Read `stride-model.md` for full category definitions, examples, and standard mitigations.
|
|
104
|
+
|
|
105
|
+
For each of the 6 STRIDE categories, systematically apply it to every entry point and trust boundary identified in Phase 2:
|
|
106
|
+
|
|
107
|
+
**For each threat found:**
|
|
108
|
+
```
|
|
109
|
+
Threat ID: T-[category]-[sequence] (e.g., T-S-001, T-T-002)
|
|
110
|
+
Category: [STRIDE letter]
|
|
111
|
+
Target: [which asset or entry point]
|
|
112
|
+
Description: [specific attack scenario]
|
|
113
|
+
Severity: Critical / High / Medium / Low
|
|
114
|
+
Likelihood: High / Medium / Low
|
|
115
|
+
Evidence: [code reference or architectural reason]
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**Severity × Likelihood matrix:**
|
|
119
|
+
|
|
120
|
+
| | High Likelihood | Medium Likelihood | Low Likelihood |
|
|
121
|
+
|---|---|---|---|
|
|
122
|
+
| **Critical impact** | P0 | P1 | P2 |
|
|
123
|
+
| **High impact** | P1 | P2 | P3 |
|
|
124
|
+
| **Medium impact** | P2 | P3 | P4 |
|
|
125
|
+
|
|
126
|
+
Log all identified threats to `security/threats.md` under `## STRIDE Threats`.
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
### Phase 4 — OWASP Top-10 Check
|
|
131
|
+
|
|
132
|
+
Read `owasp-checklist.md` for the full checklist per category.
|
|
133
|
+
|
|
134
|
+
For each of the 10 OWASP 2021 categories, check whether the system is vulnerable:
|
|
135
|
+
|
|
136
|
+
**Check result format:**
|
|
137
|
+
```
|
|
138
|
+
[Category]: PASS / FAIL / PARTIAL / N/A
|
|
139
|
+
Evidence: [code reference or architectural note]
|
|
140
|
+
Severity: [if FAIL/PARTIAL]
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**Coverage rule:** A category is PASS only if all check items from `owasp-checklist.md` are verified. PARTIAL means some items pass, some couldn't be verified. N/A means the category is structurally inapplicable (e.g., A09 Logging for a stateless function with no logs needed).
|
|
144
|
+
|
|
145
|
+
Log results to `security/threats.md` under `## OWASP Top-10 Results`.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
### Phase 5 — Attack Surface Mapping
|
|
150
|
+
|
|
151
|
+
Synthesize findings from Phases 3–4 into an attack surface map:
|
|
152
|
+
|
|
153
|
+
- **High-value targets:** Assets that appear in multiple threats (concentrated risk)
|
|
154
|
+
- **Attack chains:** Sequences where one vulnerability enables another (e.g., SSRF → credential theft → privilege escalation)
|
|
155
|
+
- **Unprotected perimeter:** Entry points with no authentication or validation
|
|
156
|
+
- **Data exfiltration paths:** How could an attacker extract sensitive data?
|
|
157
|
+
- **Blast radius:** If a specific component is compromised, what else is at risk?
|
|
158
|
+
|
|
159
|
+
Log to `security/threats.md` under `## Attack Surface Map`.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
### Phase 6 — Mitigation Proposals
|
|
164
|
+
|
|
165
|
+
For each threat from Phase 3 + each FAIL/PARTIAL from Phase 4, propose a concrete mitigation:
|
|
166
|
+
|
|
167
|
+
**Mitigation format:**
|
|
168
|
+
```
|
|
169
|
+
Mitigation ID: M-[ThreatID]
|
|
170
|
+
Threat addressed: [T-xxx or OWASP category]
|
|
171
|
+
Proposal: [Specific code change, configuration, or architecture change]
|
|
172
|
+
Implementation effort: Low (< 1 day) / Medium (1–5 days) / High (> 5 days)
|
|
173
|
+
Status: proposed / in-progress / implemented / accepted-risk / wont-fix
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**Prioritization:** P0/P1 threats must have mitigations. P2+ threats should have mitigations but may be deferred.
|
|
177
|
+
|
|
178
|
+
**Mitigation types:**
|
|
179
|
+
- Code change (input validation, parameterized queries, etc.)
|
|
180
|
+
- Configuration change (CORS policy, security headers, TLS enforcement)
|
|
181
|
+
- Architecture change (add authentication layer, separate privilege domains)
|
|
182
|
+
- Monitoring/detection (log anomalies, rate limiting, alerting)
|
|
183
|
+
- Accepted risk (document why the threat is tolerated)
|
|
184
|
+
|
|
185
|
+
Log to `security/mitigations.md`.
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
### Phase 7 — Coverage Scoring & Re-Audit
|
|
190
|
+
|
|
191
|
+
**Coverage metric:**
|
|
192
|
+
|
|
193
|
+
```
|
|
194
|
+
coverage = (threats_addressed / threats_identified) × 100
|
|
195
|
+
|
|
196
|
+
Where:
|
|
197
|
+
threats_identified = all STRIDE threats + all OWASP FAIL/PARTIAL findings
|
|
198
|
+
threats_addressed = findings with mitigation status NOT 'proposed'
|
|
199
|
+
(i.e., implemented, accepted-risk, or wont-fix with justification)
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
**At the end of each iteration:**
|
|
203
|
+
1. Calculate current coverage score.
|
|
204
|
+
2. Write `security/coverage-report.md` with score + gap analysis.
|
|
205
|
+
3. If `coverage >= target` → audit complete, produce final summary.
|
|
206
|
+
4. If `coverage < target` AND budget not exhausted → begin re-audit pass.
|
|
207
|
+
|
|
208
|
+
**Re-audit pass:** Focus on the highest-severity unaddressed threats. Propose additional mitigations or refine existing ones. Increment the pass counter.
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Re-Audit with --diff Flag
|
|
213
|
+
|
|
214
|
+
When called with `--diff`, only audit what changed since the last audit:
|
|
215
|
+
|
|
216
|
+
1. Load `security/threats.md` and `security/mitigations.md` from the previous run.
|
|
217
|
+
2. Identify changed files (via `git diff --name-only` or user-provided diff).
|
|
218
|
+
3. Re-check only STRIDE threats and OWASP items that touch changed files.
|
|
219
|
+
4. Update threat/mitigation records. Do NOT re-check unchanged components.
|
|
220
|
+
5. Recalculate coverage score.
|
|
221
|
+
|
|
222
|
+
**--diff skips:** All STRIDE categories for unchanged components, all OWASP checks for unaffected code paths.
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## Coverage Report Format
|
|
227
|
+
|
|
228
|
+
`security/coverage-report.md`:
|
|
229
|
+
|
|
230
|
+
```markdown
|
|
231
|
+
# Security Coverage Report
|
|
232
|
+
Date: [ISO date]
|
|
233
|
+
Pass: [N]
|
|
234
|
+
Target: [80]%
|
|
235
|
+
Current Coverage: [X]%
|
|
236
|
+
|
|
237
|
+
## Score Breakdown
|
|
238
|
+
- Threats identified: [N]
|
|
239
|
+
- Threats addressed: [M]
|
|
240
|
+
- Coverage: [X]%
|
|
241
|
+
|
|
242
|
+
## Status
|
|
243
|
+
[PASS: Target achieved] / [IN PROGRESS: X% of target]
|
|
244
|
+
|
|
245
|
+
## Unaddressed Threats (Gaps)
|
|
246
|
+
| Threat ID | Severity | Description | Blocker |
|
|
247
|
+
|-----------|----------|-------------|---------|
|
|
248
|
+
|
|
249
|
+
## Addressed Threats Summary
|
|
250
|
+
| Threat ID | Severity | Mitigation | Status |
|
|
251
|
+
|-----------|----------|------------|--------|
|
|
252
|
+
|
|
253
|
+
## Accepted Risks
|
|
254
|
+
[List of threats with accepted-risk status and justification]
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## Output Structure
|
|
260
|
+
|
|
261
|
+
| File | Updated | Purpose |
|
|
262
|
+
|------|---------|---------|
|
|
263
|
+
| `security/threats.md` | Each phase | All identified threats (STRIDE + OWASP) |
|
|
264
|
+
| `security/mitigations.md` | Phase 6 + re-audits | Proposed fixes + implementation status |
|
|
265
|
+
| `security/coverage-report.md` | Phase 7 + re-audits | Coverage score, gaps, accepted risks |
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## Edge Cases
|
|
270
|
+
|
|
271
|
+
| Situation | Handling |
|
|
272
|
+
|-----------|----------|
|
|
273
|
+
| No codebase access (Tier 2/3) | Base threats on architecture description; note confidence is lower |
|
|
274
|
+
| STRIDE category has zero threats | Log "No threats identified for [category] — [brief reason]" |
|
|
275
|
+
| Coverage target unreachable | After 3 re-audit passes, produce report with "maximum achievable coverage: X%" |
|
|
276
|
+
| New critical threat found in re-audit | Add to threats.md, prioritize mitigation, recalculate coverage |
|
|
277
|
+
| All threats are accepted-risk | Coverage = 100% (accepted risk counts as addressed). Flag this prominently. |
|
|
278
|
+
| --diff but no previous security/ folder | Run full audit instead, warn the user |
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
## Iteration Budget
|
|
283
|
+
|
|
284
|
+
- **Default:** 3 re-audit passes (initial audit + 2 re-audits)
|
|
285
|
+
- **Override:** Set `max_audit_passes: N` in the request
|
|
286
|
+
- **Termination:** coverage >= target OR passes exhausted
|
|
287
|
+
- **On exhaustion:** Report highest achievable coverage with recommendations for manual review of remaining gaps
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# OWASP Top 10 (2021) Checklist
|
|
2
|
+
|
|
3
|
+
> **LitHermes child boundary:** This is inert Hermes reference data. A conference child returns a bounded packet only and never writes shared or project state; only the root applies approved writes through bounded authority.
|
|
4
|
+
|
|
5
|
+
Reference for Phase 4 of the `autoresearch:security` audit. For each category, verify all check items by reading code or reviewing architecture. Mark each category PASS / FAIL / PARTIAL / N/A.
|
|
6
|
+
|
|
7
|
+
A category is **PASS** only if all applicable check items are verified.
|
|
8
|
+
A category is **PARTIAL** if some checks pass and others cannot be verified.
|
|
9
|
+
A category is **N/A** only if the category is structurally inapplicable (document why).
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## A01 — Broken Access Control
|
|
14
|
+
|
|
15
|
+
**What it is:** The application fails to enforce what authenticated users are allowed to do. Users can access data or functions beyond their intended permissions.
|
|
16
|
+
|
|
17
|
+
**Check items:**
|
|
18
|
+
1. Every API endpoint that returns user-specific data performs an authorization check — not just an authentication check. Verify that ownership/role is validated before returning resources (look for patterns like `if resource.owner_id != current_user.id`).
|
|
19
|
+
2. Admin-only endpoints (user management, configuration, bulk operations) are protected by explicit role checks, not merely by being "hidden" from the UI.
|
|
20
|
+
3. CORS policy is restrictive: `Access-Control-Allow-Origin` is not set to `*` for authenticated endpoints. Allowed origins are an explicit allowlist.
|
|
21
|
+
4. Directory listing is disabled on all web-accessible paths. Static file servers do not expose `.git`, `.env`, or backup files.
|
|
22
|
+
5. JWT tokens and session tokens cannot be reused after logout. Server-side token invalidation exists.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## A02 — Cryptographic Failures
|
|
27
|
+
|
|
28
|
+
**What it is:** Sensitive data is exposed due to weak or absent encryption — in transit, at rest, or in processing.
|
|
29
|
+
|
|
30
|
+
**Check items:**
|
|
31
|
+
1. All data in transit uses TLS 1.2 or higher. HTTP-only endpoints do not exist for authenticated or sensitive routes. HSTS header is present.
|
|
32
|
+
2. Passwords are hashed with a modern adaptive algorithm: bcrypt, scrypt, Argon2, or PBKDF2. MD5, SHA-1, and plain SHA-256 are not used for password storage.
|
|
33
|
+
3. Sensitive fields at rest (PII, payment data, credentials, tokens) are encrypted. Encryption uses AES-256 or equivalent; keys are not stored in the same location as encrypted data.
|
|
34
|
+
4. Cryptographic keys and secrets are not hardcoded in source code, config files, or version control. Secret management (environment variables, vault) is used.
|
|
35
|
+
5. Random values used for security purposes (tokens, session IDs, nonces) are generated with a cryptographically secure RNG, not `Math.random()` or `random.random()`.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## A03 — Injection
|
|
40
|
+
|
|
41
|
+
**What it is:** Untrusted data is sent to an interpreter (SQL, shell, LDAP, XML, etc.) as part of a command or query, causing unintended execution.
|
|
42
|
+
|
|
43
|
+
**Check items:**
|
|
44
|
+
1. All database queries use parameterized queries or prepared statements. String concatenation to build SQL queries does not exist (search for `f"SELECT`, `"SELECT " +`, `query.format(`, `% user_input`).
|
|
45
|
+
2. Shell commands constructed from user input use argument arrays, not string interpolation (e.g., `subprocess(["cmd", arg])` not `subprocess(f"cmd {arg}", shell=True)`).
|
|
46
|
+
3. Template engines are used in auto-escaping mode. User input is never passed directly to `eval()`, `exec()`, or equivalent dynamic code execution functions.
|
|
47
|
+
4. XML parsers have external entity processing (XXE) disabled. DTD processing is disabled or the parser is explicitly configured to reject external entities.
|
|
48
|
+
5. ORM-level raw query escape hatches (`raw()`, `execute()`, `query()`) are audited — each use is reviewed to confirm input is parameterized or sanitized.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## A04 — Insecure Design
|
|
53
|
+
|
|
54
|
+
**What it is:** Fundamental design flaws that cannot be fixed by correct implementation alone — the architecture itself lacks security controls.
|
|
55
|
+
|
|
56
|
+
**Check items:**
|
|
57
|
+
1. Rate limiting exists for authentication endpoints (login, password reset, OTP verification). Brute-force attacks are not feasible at current limits.
|
|
58
|
+
2. Password reset flows use time-limited, single-use tokens sent to verified channels. They do not rely on security questions or predictable tokens.
|
|
59
|
+
3. Business logic enforces server-side invariants that cannot be violated by manipulating client-sent data (e.g., price validation, quantity limits, balance checks happen on the server).
|
|
60
|
+
4. Sensitive workflows (account deletion, large transfers, privilege changes) require re-authentication or a secondary confirmation step.
|
|
61
|
+
5. The system has a documented threat model. Security requirements were considered at design time, not only during implementation.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## A05 — Security Misconfiguration
|
|
66
|
+
|
|
67
|
+
**What it is:** Insecure default settings, incomplete configurations, open cloud storage, unnecessary features, or misconfigured security headers.
|
|
68
|
+
|
|
69
|
+
**Check items:**
|
|
70
|
+
1. Security headers are present on all HTTP responses: `Content-Security-Policy`, `X-Frame-Options`, `X-Content-Type-Options: nosniff`, `Referrer-Policy`, `Permissions-Policy`.
|
|
71
|
+
2. Default credentials are changed. Frameworks and services are not deployed with factory passwords, default admin accounts, or sample applications.
|
|
72
|
+
3. Error responses do not expose stack traces, internal paths, database names, framework versions, or server software to external clients.
|
|
73
|
+
4. Unnecessary features, services, and ports are disabled. The attack surface is minimized (no debug endpoints in production, no admin UIs on public ports).
|
|
74
|
+
5. Dependencies are up to date. No known-vulnerable versions of frameworks, libraries, or runtimes are in use. Dependency scanning runs in CI.
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## A06 — Vulnerable and Outdated Components
|
|
79
|
+
|
|
80
|
+
**What it is:** Using components (libraries, frameworks, runtime) with known vulnerabilities, or failing to track component versions.
|
|
81
|
+
|
|
82
|
+
**Check items:**
|
|
83
|
+
1. A software bill of materials (SBOM) or dependency manifest exists and is version-pinned (`package-lock.json`, `poetry.lock`, `go.sum`, `Cargo.lock`).
|
|
84
|
+
2. Automated vulnerability scanning runs in CI (e.g., `npm audit`, `pip-audit`, `trivy`, `snyk`, `dependabot`). Known critical/high vulnerabilities in direct dependencies are resolved.
|
|
85
|
+
3. Components are updated on a regular cadence. No dependency is more than 2 major versions behind its current release.
|
|
86
|
+
4. Unused dependencies are removed. The dependency tree does not contain packages that serve no active purpose.
|
|
87
|
+
5. Container base images are scanned for OS-level CVEs. Images are not based on `latest` tags — they pin specific versions.
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## A07 — Identification and Authentication Failures
|
|
92
|
+
|
|
93
|
+
**What it is:** Weaknesses in authentication allow attackers to compromise passwords, keys, session tokens, or to assume other users' identities.
|
|
94
|
+
|
|
95
|
+
**Check items:**
|
|
96
|
+
1. Passwords must meet minimum complexity requirements. Common passwords are rejected (check against a blocklist). Maximum length is not set too low (allow >= 64 characters).
|
|
97
|
+
2. Multi-factor authentication (MFA) is available and enforced for privileged accounts. Admin interfaces require MFA.
|
|
98
|
+
3. Session tokens are sufficiently random (>= 128 bits of entropy), rotated after login, invalidated on logout, and expire after a reasonable idle timeout.
|
|
99
|
+
4. Login failures do not reveal whether the username or the password was incorrect (generic "invalid credentials" message for both cases).
|
|
100
|
+
5. The application is not vulnerable to credential stuffing: account lockout or progressive delay exists after N failed attempts, and/or CAPTCHA is used for automated abuse prevention.
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## A08 — Software and Data Integrity Failures
|
|
105
|
+
|
|
106
|
+
**What it is:** Code and infrastructure that does not protect against integrity violations — unsigned updates, insecure deserialization, CI/CD pipeline tampering.
|
|
107
|
+
|
|
108
|
+
**Check items:**
|
|
109
|
+
1. Dependencies come only from trusted registries with integrity verification (checksums or SRI hashes). When a separately approved restore is necessary, the root must use the repository-owned mode that disables lifecycle scripts; children only propose the action and never install packages.
|
|
110
|
+
2. Serialized objects from untrusted sources (cookies, API inputs) are not deserialized into live objects without type-safe validation. Languages with unsafe deserialization (Java, Python pickle, PHP unserialize) are audited.
|
|
111
|
+
3. CI/CD pipelines are protected: secrets are injected via environment, not baked into images; pipeline configs are version-controlled and protected from unauthorized modification.
|
|
112
|
+
4. Software updates use signed artifacts. If the application auto-updates components, it verifies signatures before applying.
|
|
113
|
+
5. Critical data received from clients is re-validated server-side. The server does not trust the client's representation of computed values (prices, totals, checksums).
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## A09 — Security Logging and Monitoring Failures
|
|
118
|
+
|
|
119
|
+
**What it is:** Insufficient logging, monitoring, and alerting allows attackers to operate undetected for extended periods.
|
|
120
|
+
|
|
121
|
+
**Check items:**
|
|
122
|
+
1. Authentication events are logged: successful logins, failed logins, logouts, password resets. Each event includes: timestamp (UTC), user identifier, source IP, user agent, outcome.
|
|
123
|
+
2. Authorization failures are logged: access denied events, attempts to reach unauthorized resources. These are monitored for anomalies (repeated failures = potential enumeration or escalation attempt).
|
|
124
|
+
3. Sensitive data operations are logged: creation, modification, and deletion of sensitive records. The audit trail is append-only and cannot be modified by application-level users.
|
|
125
|
+
4. Logs are shipped to a centralized system (SIEM, log aggregator) that is separate from the application servers. An attacker who compromises the application cannot delete the logs.
|
|
126
|
+
5. Alerting exists for critical security events: multiple failed logins, impossible travel, bulk data export, new admin account creation. Alerts have defined response procedures.
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## A10 — Server-Side Request Forgery (SSRF)
|
|
131
|
+
|
|
132
|
+
**What it is:** The application fetches a remote resource using a URL supplied by an attacker, allowing the attacker to reach internal services, metadata endpoints, or other restricted destinations.
|
|
133
|
+
|
|
134
|
+
**Check items:**
|
|
135
|
+
1. User-supplied URLs are validated against an allowlist of permitted schemes (`https` only) and hostnames before the server makes any outbound request.
|
|
136
|
+
2. Internal network ranges are blocked from user-controlled URL targets: `169.254.0.0/16` (cloud metadata), `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`, `127.0.0.0/8`, `::1`.
|
|
137
|
+
3. Cloud provider metadata endpoints are not reachable via user-controlled URLs. AWS `169.254.169.254`, GCP `metadata.google.internal`, Azure `169.254.169.254` are explicitly blocked.
|
|
138
|
+
4. DNS rebinding mitigations exist: the IP address is resolved once and validated before the connection is made; re-resolution is not allowed after validation.
|
|
139
|
+
5. Outbound HTTP clients are configured with explicit allowlists or egress firewall rules. The application cannot make arbitrary outbound requests to unchecked destinations.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## OWASP Quick Reference Table
|
|
144
|
+
|
|
145
|
+
| ID | Category | Core Risk | CWE References |
|
|
146
|
+
|----|----------|-----------|----------------|
|
|
147
|
+
| A01 | Broken Access Control | Authorization bypass | CWE-200, CWE-284, CWE-285 |
|
|
148
|
+
| A02 | Cryptographic Failures | Data exposure | CWE-261, CWE-296, CWE-310 |
|
|
149
|
+
| A03 | Injection | Command execution | CWE-77, CWE-78, CWE-89 |
|
|
150
|
+
| A04 | Insecure Design | Architectural flaws | CWE-657, CWE-840 |
|
|
151
|
+
| A05 | Security Misconfiguration | Default/open settings | CWE-2, CWE-16 |
|
|
152
|
+
| A06 | Vulnerable Components | Known CVEs | CWE-1035, CWE-1104 |
|
|
153
|
+
| A07 | Auth Failures | Account compromise | CWE-287, CWE-306 |
|
|
154
|
+
| A08 | Integrity Failures | Tampered artifacts | CWE-345, CWE-502 |
|
|
155
|
+
| A09 | Logging Failures | Undetected attacks | CWE-117, CWE-223 |
|
|
156
|
+
| A10 | SSRF | Internal access | CWE-918 |
|