@jakkrichm/create-nexus-devflow 2.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 +82 -0
- package/bin/create-nexus-devflow.js +275 -0
- package/lib/update.js +379 -0
- package/package.json +53 -0
- package/template/.agents/skills/00-discover/SKILL.md +170 -0
- package/template/.agents/skills/10-define/SKILL.md +170 -0
- package/template/.agents/skills/20-spec/SKILL.md +156 -0
- package/template/.agents/skills/30-plan/SKILL.md +221 -0
- package/template/.agents/skills/40-implement/SKILL.md +166 -0
- package/template/.agents/skills/50-verify/SKILL.md +188 -0
- package/template/.agents/skills/60-report/SKILL.md +183 -0
- package/template/.agents/skills/70-release/SKILL.md +155 -0
- package/template/.agents/skills/9arm-skills/README.md +51 -0
- package/template/.agents/skills/9arm-skills/debug-mantra/SKILL.md +86 -0
- package/template/.agents/skills/9arm-skills/management-talk/SKILL.md +79 -0
- package/template/.agents/skills/9arm-skills/post-mortem/SKILL.md +71 -0
- package/template/.agents/skills/9arm-skills/scrutinize/SKILL.md +72 -0
- package/template/.agents/skills/agent/SKILL.md +165 -0
- package/template/.agents/skills/api-and-interface-design/SKILL.md +294 -0
- package/template/.agents/skills/app-builder/SKILL.md +75 -0
- package/template/.agents/skills/app-builder/agent-coordination.md +71 -0
- package/template/.agents/skills/app-builder/feature-building.md +53 -0
- package/template/.agents/skills/app-builder/project-detection.md +34 -0
- package/template/.agents/skills/app-builder/scaffolding.md +118 -0
- package/template/.agents/skills/app-builder/tech-stack.md +40 -0
- package/template/.agents/skills/app-builder/templates/SKILL.md +39 -0
- package/template/.agents/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/template/.agents/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/template/.agents/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/template/.agents/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/template/.agents/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/template/.agents/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/template/.agents/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/template/.agents/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -0
- package/template/.agents/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -0
- package/template/.agents/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -0
- package/template/.agents/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -0
- package/template/.agents/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/template/.agents/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -0
- package/template/.agents/skills/architecture/SKILL.md +55 -0
- package/template/.agents/skills/architecture/context-discovery.md +43 -0
- package/template/.agents/skills/architecture/examples.md +94 -0
- package/template/.agents/skills/architecture/pattern-selection.md +68 -0
- package/template/.agents/skills/architecture/patterns-reference.md +50 -0
- package/template/.agents/skills/architecture/trade-off-analysis.md +77 -0
- package/template/.agents/skills/bash-linux/SKILL.md +199 -0
- package/template/.agents/skills/behavioral-modes/SKILL.md +242 -0
- package/template/.agents/skills/brainstorm/SKILL.md +168 -0
- package/template/.agents/skills/browser-testing-with-devtools/SKILL.md +302 -0
- package/template/.agents/skills/changelog/SKILL.md +109 -0
- package/template/.agents/skills/check-for-updates/SKILL.md +117 -0
- package/template/.agents/skills/ci-cd-and-automation/SKILL.md +390 -0
- package/template/.agents/skills/code-review-and-quality/SKILL.md +392 -0
- package/template/.agents/skills/code-simplification/SKILL.md +331 -0
- package/template/.agents/skills/codebase-design/DEEPENING.md +24 -0
- package/template/.agents/skills/codebase-design/DESIGN-IT-TWICE.md +28 -0
- package/template/.agents/skills/codebase-design/SKILL.md +58 -0
- package/template/.agents/skills/commit/SKILL.md +63 -0
- package/template/.agents/skills/competitor-analysis/SKILL.md +66 -0
- package/template/.agents/skills/context-engineering/SKILL.md +290 -0
- package/template/.agents/skills/database-design/SKILL.md +52 -0
- package/template/.agents/skills/database-design/database-selection.md +43 -0
- package/template/.agents/skills/database-design/indexing.md +39 -0
- package/template/.agents/skills/database-design/migrations.md +48 -0
- package/template/.agents/skills/database-design/optimization.md +36 -0
- package/template/.agents/skills/database-design/orm-selection.md +30 -0
- package/template/.agents/skills/database-design/schema-design.md +56 -0
- package/template/.agents/skills/database-design/scripts/schema_validator.py +172 -0
- package/template/.agents/skills/debug/SKILL.md +131 -0
- package/template/.agents/skills/debugging-and-error-recovery/SKILL.md +298 -0
- package/template/.agents/skills/deploy/SKILL.md +91 -0
- package/template/.agents/skills/deployment-procedures/SKILL.md +241 -0
- package/template/.agents/skills/deprecation-and-migration/SKILL.md +206 -0
- package/template/.agents/skills/devflow/SKILL.md +89 -0
- package/template/.agents/skills/devflow-concept-intake/SKILL.md +150 -0
- package/template/.agents/skills/devflow-concept-intake/agents/openai.yaml +4 -0
- package/template/.agents/skills/devflow-concept-intake/references/adoption-proposal-template.md +60 -0
- package/template/.agents/skills/devflow-concept-intake/references/concept-report-template.md +47 -0
- package/template/.agents/skills/devflow-concept-intake/references/upstream-tracking-template.md +51 -0
- package/template/.agents/skills/devflow-wiki/SKILL.md +75 -0
- package/template/.agents/skills/diagnosing-bugs/SKILL.md +93 -0
- package/template/.agents/skills/documentation-and-adrs/SKILL.md +278 -0
- package/template/.agents/skills/domain-modeling/ADR-FORMAT.md +47 -0
- package/template/.agents/skills/domain-modeling/CONTEXT-FORMAT.md +60 -0
- package/template/.agents/skills/domain-modeling/SKILL.md +74 -0
- package/template/.agents/skills/english-to-thai-translator/SKILL.md +125 -0
- package/template/.agents/skills/followup/SKILL.md +83 -0
- package/template/.agents/skills/frontend-ui-engineering/SKILL.md +326 -0
- package/template/.agents/skills/frontend-ui-engineering/accessibility-checklist.md +159 -0
- package/template/.agents/skills/git-workflow-and-versioning/SKILL.md +300 -0
- package/template/.agents/skills/goal/SKILL.md +148 -0
- package/template/.agents/skills/handoff/SKILL.md +46 -0
- package/template/.agents/skills/help/SKILL.md +253 -0
- package/template/.agents/skills/human-review-decisions/SKILL.md +74 -0
- package/template/.agents/skills/i18n-localization/SKILL.md +154 -0
- package/template/.agents/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/template/.agents/skills/idea-refine/SKILL.md +178 -0
- package/template/.agents/skills/idea-refine/examples.md +238 -0
- package/template/.agents/skills/idea-refine/frameworks.md +99 -0
- package/template/.agents/skills/idea-refine/refinement-criteria.md +113 -0
- package/template/.agents/skills/idea-refine/scripts/idea-refine.sh +15 -0
- package/template/.agents/skills/incremental-implementation/SKILL.md +248 -0
- package/template/.agents/skills/insight/SKILL.md +131 -0
- package/template/.agents/skills/insight-capture/SKILL.md +84 -0
- package/template/.agents/skills/intelligent-routing/SKILL.md +176 -0
- package/template/.agents/skills/issue-triage/SKILL.md +115 -0
- package/template/.agents/skills/lint-and-validate/SKILL.md +45 -0
- package/template/.agents/skills/lint-and-validate/scripts/lint_runner.py +184 -0
- package/template/.agents/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/template/.agents/skills/mcp-builder/SKILL.md +176 -0
- package/template/.agents/skills/md2html/SKILL.md +154 -0
- package/template/.agents/skills/md2html/components.md +505 -0
- package/template/.agents/skills/md2html/template.html +1152 -0
- package/template/.agents/skills/merge/SKILL.md +76 -0
- package/template/.agents/skills/mobile-design/SKILL.md +394 -0
- package/template/.agents/skills/mobile-design/decision-trees.md +516 -0
- package/template/.agents/skills/mobile-design/mobile-backend.md +491 -0
- package/template/.agents/skills/mobile-design/mobile-color-system.md +420 -0
- package/template/.agents/skills/mobile-design/mobile-debugging.md +122 -0
- package/template/.agents/skills/mobile-design/mobile-design-thinking.md +357 -0
- package/template/.agents/skills/mobile-design/mobile-navigation.md +458 -0
- package/template/.agents/skills/mobile-design/mobile-performance.md +767 -0
- package/template/.agents/skills/mobile-design/mobile-testing.md +356 -0
- package/template/.agents/skills/mobile-design/mobile-typography.md +433 -0
- package/template/.agents/skills/mobile-design/platform-android.md +666 -0
- package/template/.agents/skills/mobile-design/platform-ios.md +561 -0
- package/template/.agents/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/template/.agents/skills/mobile-design/touch-psychology.md +537 -0
- package/template/.agents/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +312 -0
- package/template/.agents/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -0
- package/template/.agents/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -0
- package/template/.agents/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -0
- package/template/.agents/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -0
- package/template/.agents/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -0
- package/template/.agents/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -0
- package/template/.agents/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -0
- package/template/.agents/skills/nextjs-react-expert/SKILL.md +286 -0
- package/template/.agents/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
- package/template/.agents/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
- package/template/.agents/skills/nodejs-best-practices/SKILL.md +333 -0
- package/template/.agents/skills/obsidian-bases/SKILL.md +506 -0
- package/template/.agents/skills/obsidian-bases/references/FUNCTIONS_REFERENCE.md +173 -0
- package/template/.agents/skills/obsidian-cli/SKILL.md +115 -0
- package/template/.agents/skills/obsidian-clipper-template-creator/SKILL.md +73 -0
- package/template/.agents/skills/obsidian-clipper-template-creator/assets/clipping-template.json +51 -0
- package/template/.agents/skills/obsidian-clipper-template-creator/assets/recipe-template.json +48 -0
- package/template/.agents/skills/obsidian-clipper-template-creator/references/analysis-workflow.md +79 -0
- package/template/.agents/skills/obsidian-clipper-template-creator/references/bases-workflow.md +44 -0
- package/template/.agents/skills/obsidian-clipper-template-creator/references/filters.md +51 -0
- package/template/.agents/skills/obsidian-clipper-template-creator/references/json-schema.md +77 -0
- package/template/.agents/skills/obsidian-clipper-template-creator/references/logic.md +67 -0
- package/template/.agents/skills/obsidian-clipper-template-creator/references/variables.md +64 -0
- package/template/.agents/skills/obsidian-markdown/SKILL.md +205 -0
- package/template/.agents/skills/obsidian-markdown/references/CALLOUTS.md +58 -0
- package/template/.agents/skills/obsidian-markdown/references/EMBEDS.md +63 -0
- package/template/.agents/skills/obsidian-markdown/references/PROPERTIES.md +61 -0
- package/template/.agents/skills/package-json-generator/SKILL.md +60 -0
- package/template/.agents/skills/package-json-generator/scripts/generate.js +120 -0
- package/template/.agents/skills/package-json-generator/scripts/run.sh +19 -0
- package/template/.agents/skills/parallel-agents/SKILL.md +144 -0
- package/template/.agents/skills/performance-optimization/SKILL.md +299 -0
- package/template/.agents/skills/performance-optimization/performance-checklist.md +113 -0
- package/template/.agents/skills/planning-and-task-breakdown/SKILL.md +239 -0
- package/template/.agents/skills/powershell-windows/SKILL.md +167 -0
- package/template/.agents/skills/pr/SKILL.md +93 -0
- package/template/.agents/skills/pr-review/SKILL.md +143 -0
- package/template/.agents/skills/pr-review-analysis/SKILL.md +89 -0
- package/template/.agents/skills/prd/SKILL.md +127 -0
- package/template/.agents/skills/preview/SKILL.md +121 -0
- package/template/.agents/skills/preview-local-check/SKILL.md +59 -0
- package/template/.agents/skills/prompt-addons/SKILL.md +99 -0
- package/template/.agents/skills/prototype/SKILL.md +44 -0
- package/template/.agents/skills/prp-dev-fastapi/SKILL.md +114 -0
- package/template/.agents/skills/prp-dev-multiplatform/SKILL.md +36 -0
- package/template/.agents/skills/prp-dev-odoo/SKILL.md +71 -0
- package/template/.agents/skills/prp-dev-php/SKILL.md +63 -0
- package/template/.agents/skills/prp-sa-ba/SKILL.md +52 -0
- package/template/.agents/skills/python-patterns/SKILL.md +441 -0
- package/template/.agents/skills/red-team-tactics/SKILL.md +199 -0
- package/template/.agents/skills/release-git-operations/SKILL.md +97 -0
- package/template/.agents/skills/research/SKILL.md +143 -0
- package/template/.agents/skills/review/SKILL.md +55 -0
- package/template/.agents/skills/review-followup-routing/SKILL.md +98 -0
- package/template/.agents/skills/roadmap-strategy/SKILL.md +97 -0
- package/template/.agents/skills/security-and-hardening/SKILL.md +349 -0
- package/template/.agents/skills/security-and-hardening/security-checklist.md +134 -0
- package/template/.agents/skills/security-review/SKILL.md +166 -0
- package/template/.agents/skills/seo-fundamentals/SKILL.md +129 -0
- package/template/.agents/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/template/.agents/skills/server-management/SKILL.md +161 -0
- package/template/.agents/skills/shipping-and-launch/SKILL.md +311 -0
- package/template/.agents/skills/silent-failure-audit/SKILL.md +73 -0
- package/template/.agents/skills/simplify/SKILL.md +79 -0
- package/template/.agents/skills/skill-development/SKILL.md +86 -0
- package/template/.agents/skills/spec-driven-development/SKILL.md +207 -0
- package/template/.agents/skills/spec-orchestration/SKILL.md +91 -0
- package/template/.agents/skills/specialist-agent-routing/SKILL.md +107 -0
- package/template/.agents/skills/tailwind-patterns/SKILL.md +269 -0
- package/template/.agents/skills/test/SKILL.md +82 -0
- package/template/.agents/skills/test-driven-development/SKILL.md +422 -0
- package/template/.agents/skills/test-driven-development/testing-patterns.md +236 -0
- package/template/.agents/skills/test-execution-and-coverage/SKILL.md +56 -0
- package/template/.agents/skills/type-design/SKILL.md +84 -0
- package/template/.agents/skills/ui-ux-pro-max/SKILL.md +75 -0
- package/template/.agents/skills/using-agent-skills/SKILL.md +171 -0
- package/template/.agents/skills/verification-orchestration/SKILL.md +68 -0
- package/template/.agents/skills/vulnerability-scanner/SKILL.md +276 -0
- package/template/.agents/skills/vulnerability-scanner/checklists.md +121 -0
- package/template/.agents/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/template/.agents/skills/wiki/SKILL.md +149 -0
- package/template/.agents/skills/workflow-documentation-sync/SKILL.md +87 -0
- package/template/.agents/skills/writing-great-skills/SKILL.md +65 -0
- package/template/.claude/skills/00-discover/SKILL.md +170 -0
- package/template/.claude/skills/10-define/SKILL.md +170 -0
- package/template/.claude/skills/20-spec/SKILL.md +156 -0
- package/template/.claude/skills/30-plan/SKILL.md +221 -0
- package/template/.claude/skills/40-implement/SKILL.md +166 -0
- package/template/.claude/skills/50-verify/SKILL.md +188 -0
- package/template/.claude/skills/60-report/SKILL.md +183 -0
- package/template/.claude/skills/70-release/SKILL.md +155 -0
- package/template/.claude/skills/9arm-skills/README.md +51 -0
- package/template/.claude/skills/9arm-skills/debug-mantra/SKILL.md +86 -0
- package/template/.claude/skills/9arm-skills/management-talk/SKILL.md +79 -0
- package/template/.claude/skills/9arm-skills/post-mortem/SKILL.md +71 -0
- package/template/.claude/skills/9arm-skills/scrutinize/SKILL.md +72 -0
- package/template/.claude/skills/agent/SKILL.md +165 -0
- package/template/.claude/skills/api-and-interface-design/SKILL.md +294 -0
- package/template/.claude/skills/app-builder/SKILL.md +75 -0
- package/template/.claude/skills/app-builder/agent-coordination.md +71 -0
- package/template/.claude/skills/app-builder/feature-building.md +53 -0
- package/template/.claude/skills/app-builder/project-detection.md +34 -0
- package/template/.claude/skills/app-builder/scaffolding.md +118 -0
- package/template/.claude/skills/app-builder/tech-stack.md +40 -0
- package/template/.claude/skills/app-builder/templates/SKILL.md +39 -0
- package/template/.claude/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/template/.claude/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/template/.claude/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/template/.claude/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/template/.claude/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/template/.claude/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/template/.claude/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/template/.claude/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -0
- package/template/.claude/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -0
- package/template/.claude/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -0
- package/template/.claude/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -0
- package/template/.claude/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/template/.claude/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -0
- package/template/.claude/skills/architecture/SKILL.md +55 -0
- package/template/.claude/skills/architecture/context-discovery.md +43 -0
- package/template/.claude/skills/architecture/examples.md +94 -0
- package/template/.claude/skills/architecture/pattern-selection.md +68 -0
- package/template/.claude/skills/architecture/patterns-reference.md +50 -0
- package/template/.claude/skills/architecture/trade-off-analysis.md +77 -0
- package/template/.claude/skills/bash-linux/SKILL.md +199 -0
- package/template/.claude/skills/behavioral-modes/SKILL.md +242 -0
- package/template/.claude/skills/brainstorm/SKILL.md +168 -0
- package/template/.claude/skills/browser-testing-with-devtools/SKILL.md +302 -0
- package/template/.claude/skills/changelog/SKILL.md +109 -0
- package/template/.claude/skills/check-for-updates/SKILL.md +117 -0
- package/template/.claude/skills/ci-cd-and-automation/SKILL.md +390 -0
- package/template/.claude/skills/code-review-and-quality/SKILL.md +392 -0
- package/template/.claude/skills/code-simplification/SKILL.md +331 -0
- package/template/.claude/skills/codebase-design/DEEPENING.md +24 -0
- package/template/.claude/skills/codebase-design/DESIGN-IT-TWICE.md +28 -0
- package/template/.claude/skills/codebase-design/SKILL.md +58 -0
- package/template/.claude/skills/commit/SKILL.md +63 -0
- package/template/.claude/skills/competitor-analysis/SKILL.md +66 -0
- package/template/.claude/skills/context-engineering/SKILL.md +290 -0
- package/template/.claude/skills/database-design/SKILL.md +52 -0
- package/template/.claude/skills/database-design/database-selection.md +43 -0
- package/template/.claude/skills/database-design/indexing.md +39 -0
- package/template/.claude/skills/database-design/migrations.md +48 -0
- package/template/.claude/skills/database-design/optimization.md +36 -0
- package/template/.claude/skills/database-design/orm-selection.md +30 -0
- package/template/.claude/skills/database-design/schema-design.md +56 -0
- package/template/.claude/skills/database-design/scripts/schema_validator.py +172 -0
- package/template/.claude/skills/debug/SKILL.md +131 -0
- package/template/.claude/skills/debugging-and-error-recovery/SKILL.md +298 -0
- package/template/.claude/skills/deploy/SKILL.md +91 -0
- package/template/.claude/skills/deployment-procedures/SKILL.md +241 -0
- package/template/.claude/skills/deprecation-and-migration/SKILL.md +206 -0
- package/template/.claude/skills/devflow/SKILL.md +89 -0
- package/template/.claude/skills/devflow-concept-intake/SKILL.md +150 -0
- package/template/.claude/skills/devflow-concept-intake/agents/openai.yaml +4 -0
- package/template/.claude/skills/devflow-concept-intake/references/adoption-proposal-template.md +60 -0
- package/template/.claude/skills/devflow-concept-intake/references/concept-report-template.md +47 -0
- package/template/.claude/skills/devflow-concept-intake/references/upstream-tracking-template.md +51 -0
- package/template/.claude/skills/devflow-wiki/SKILL.md +75 -0
- package/template/.claude/skills/diagnosing-bugs/SKILL.md +93 -0
- package/template/.claude/skills/documentation-and-adrs/SKILL.md +278 -0
- package/template/.claude/skills/domain-modeling/ADR-FORMAT.md +47 -0
- package/template/.claude/skills/domain-modeling/CONTEXT-FORMAT.md +60 -0
- package/template/.claude/skills/domain-modeling/SKILL.md +74 -0
- package/template/.claude/skills/english-to-thai-translator/SKILL.md +125 -0
- package/template/.claude/skills/followup/SKILL.md +83 -0
- package/template/.claude/skills/frontend-ui-engineering/SKILL.md +326 -0
- package/template/.claude/skills/frontend-ui-engineering/accessibility-checklist.md +159 -0
- package/template/.claude/skills/git-workflow-and-versioning/SKILL.md +300 -0
- package/template/.claude/skills/goal/SKILL.md +148 -0
- package/template/.claude/skills/handoff/SKILL.md +46 -0
- package/template/.claude/skills/help/SKILL.md +253 -0
- package/template/.claude/skills/human-review-decisions/SKILL.md +74 -0
- package/template/.claude/skills/i18n-localization/SKILL.md +154 -0
- package/template/.claude/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/template/.claude/skills/idea-refine/SKILL.md +178 -0
- package/template/.claude/skills/idea-refine/examples.md +238 -0
- package/template/.claude/skills/idea-refine/frameworks.md +99 -0
- package/template/.claude/skills/idea-refine/refinement-criteria.md +113 -0
- package/template/.claude/skills/idea-refine/scripts/idea-refine.sh +15 -0
- package/template/.claude/skills/incremental-implementation/SKILL.md +248 -0
- package/template/.claude/skills/insight/SKILL.md +131 -0
- package/template/.claude/skills/insight-capture/SKILL.md +84 -0
- package/template/.claude/skills/intelligent-routing/SKILL.md +176 -0
- package/template/.claude/skills/issue-triage/SKILL.md +115 -0
- package/template/.claude/skills/lint-and-validate/SKILL.md +45 -0
- package/template/.claude/skills/lint-and-validate/scripts/lint_runner.py +184 -0
- package/template/.claude/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/template/.claude/skills/mcp-builder/SKILL.md +176 -0
- package/template/.claude/skills/md2html/SKILL.md +154 -0
- package/template/.claude/skills/md2html/components.md +505 -0
- package/template/.claude/skills/md2html/template.html +1152 -0
- package/template/.claude/skills/merge/SKILL.md +76 -0
- package/template/.claude/skills/mobile-design/SKILL.md +394 -0
- package/template/.claude/skills/mobile-design/decision-trees.md +516 -0
- package/template/.claude/skills/mobile-design/mobile-backend.md +491 -0
- package/template/.claude/skills/mobile-design/mobile-color-system.md +420 -0
- package/template/.claude/skills/mobile-design/mobile-debugging.md +122 -0
- package/template/.claude/skills/mobile-design/mobile-design-thinking.md +357 -0
- package/template/.claude/skills/mobile-design/mobile-navigation.md +458 -0
- package/template/.claude/skills/mobile-design/mobile-performance.md +767 -0
- package/template/.claude/skills/mobile-design/mobile-testing.md +356 -0
- package/template/.claude/skills/mobile-design/mobile-typography.md +433 -0
- package/template/.claude/skills/mobile-design/platform-android.md +666 -0
- package/template/.claude/skills/mobile-design/platform-ios.md +561 -0
- package/template/.claude/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/template/.claude/skills/mobile-design/touch-psychology.md +537 -0
- package/template/.claude/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +312 -0
- package/template/.claude/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -0
- package/template/.claude/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -0
- package/template/.claude/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -0
- package/template/.claude/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -0
- package/template/.claude/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -0
- package/template/.claude/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -0
- package/template/.claude/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -0
- package/template/.claude/skills/nextjs-react-expert/SKILL.md +286 -0
- package/template/.claude/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
- package/template/.claude/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
- package/template/.claude/skills/nodejs-best-practices/SKILL.md +333 -0
- package/template/.claude/skills/obsidian-bases/SKILL.md +506 -0
- package/template/.claude/skills/obsidian-bases/references/FUNCTIONS_REFERENCE.md +173 -0
- package/template/.claude/skills/obsidian-cli/SKILL.md +115 -0
- package/template/.claude/skills/obsidian-clipper-template-creator/SKILL.md +73 -0
- package/template/.claude/skills/obsidian-clipper-template-creator/assets/clipping-template.json +51 -0
- package/template/.claude/skills/obsidian-clipper-template-creator/assets/recipe-template.json +48 -0
- package/template/.claude/skills/obsidian-clipper-template-creator/references/analysis-workflow.md +79 -0
- package/template/.claude/skills/obsidian-clipper-template-creator/references/bases-workflow.md +44 -0
- package/template/.claude/skills/obsidian-clipper-template-creator/references/filters.md +51 -0
- package/template/.claude/skills/obsidian-clipper-template-creator/references/json-schema.md +77 -0
- package/template/.claude/skills/obsidian-clipper-template-creator/references/logic.md +67 -0
- package/template/.claude/skills/obsidian-clipper-template-creator/references/variables.md +64 -0
- package/template/.claude/skills/obsidian-markdown/SKILL.md +205 -0
- package/template/.claude/skills/obsidian-markdown/references/CALLOUTS.md +58 -0
- package/template/.claude/skills/obsidian-markdown/references/EMBEDS.md +63 -0
- package/template/.claude/skills/obsidian-markdown/references/PROPERTIES.md +61 -0
- package/template/.claude/skills/package-json-generator/SKILL.md +60 -0
- package/template/.claude/skills/package-json-generator/scripts/generate.js +120 -0
- package/template/.claude/skills/package-json-generator/scripts/run.sh +19 -0
- package/template/.claude/skills/parallel-agents/SKILL.md +144 -0
- package/template/.claude/skills/performance-optimization/SKILL.md +299 -0
- package/template/.claude/skills/performance-optimization/performance-checklist.md +113 -0
- package/template/.claude/skills/planning-and-task-breakdown/SKILL.md +239 -0
- package/template/.claude/skills/powershell-windows/SKILL.md +167 -0
- package/template/.claude/skills/pr/SKILL.md +93 -0
- package/template/.claude/skills/pr-review/SKILL.md +143 -0
- package/template/.claude/skills/pr-review-analysis/SKILL.md +89 -0
- package/template/.claude/skills/prd/SKILL.md +127 -0
- package/template/.claude/skills/preview/SKILL.md +121 -0
- package/template/.claude/skills/preview-local-check/SKILL.md +59 -0
- package/template/.claude/skills/prompt-addons/SKILL.md +99 -0
- package/template/.claude/skills/prototype/SKILL.md +44 -0
- package/template/.claude/skills/prp-dev-fastapi/SKILL.md +114 -0
- package/template/.claude/skills/prp-dev-multiplatform/SKILL.md +36 -0
- package/template/.claude/skills/prp-dev-odoo/SKILL.md +71 -0
- package/template/.claude/skills/prp-dev-php/SKILL.md +63 -0
- package/template/.claude/skills/prp-sa-ba/SKILL.md +52 -0
- package/template/.claude/skills/python-patterns/SKILL.md +441 -0
- package/template/.claude/skills/red-team-tactics/SKILL.md +199 -0
- package/template/.claude/skills/release-git-operations/SKILL.md +97 -0
- package/template/.claude/skills/research/SKILL.md +143 -0
- package/template/.claude/skills/review/SKILL.md +55 -0
- package/template/.claude/skills/review-followup-routing/SKILL.md +98 -0
- package/template/.claude/skills/roadmap-strategy/SKILL.md +97 -0
- package/template/.claude/skills/security-and-hardening/SKILL.md +349 -0
- package/template/.claude/skills/security-and-hardening/security-checklist.md +134 -0
- package/template/.claude/skills/security-review/SKILL.md +166 -0
- package/template/.claude/skills/seo-fundamentals/SKILL.md +129 -0
- package/template/.claude/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/template/.claude/skills/server-management/SKILL.md +161 -0
- package/template/.claude/skills/shipping-and-launch/SKILL.md +311 -0
- package/template/.claude/skills/silent-failure-audit/SKILL.md +73 -0
- package/template/.claude/skills/simplify/SKILL.md +79 -0
- package/template/.claude/skills/skill-development/SKILL.md +86 -0
- package/template/.claude/skills/spec-driven-development/SKILL.md +207 -0
- package/template/.claude/skills/spec-orchestration/SKILL.md +91 -0
- package/template/.claude/skills/specialist-agent-routing/SKILL.md +107 -0
- package/template/.claude/skills/tailwind-patterns/SKILL.md +269 -0
- package/template/.claude/skills/test/SKILL.md +82 -0
- package/template/.claude/skills/test-driven-development/SKILL.md +422 -0
- package/template/.claude/skills/test-driven-development/testing-patterns.md +236 -0
- package/template/.claude/skills/test-execution-and-coverage/SKILL.md +56 -0
- package/template/.claude/skills/type-design/SKILL.md +84 -0
- package/template/.claude/skills/ui-ux-pro-max/SKILL.md +75 -0
- package/template/.claude/skills/using-agent-skills/SKILL.md +171 -0
- package/template/.claude/skills/verification-orchestration/SKILL.md +68 -0
- package/template/.claude/skills/vulnerability-scanner/SKILL.md +276 -0
- package/template/.claude/skills/vulnerability-scanner/checklists.md +121 -0
- package/template/.claude/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/template/.claude/skills/wiki/SKILL.md +149 -0
- package/template/.claude/skills/workflow-documentation-sync/SKILL.md +87 -0
- package/template/.claude/skills/writing-great-skills/SKILL.md +65 -0
- package/template/.nexus/nexus-devflow.json +44 -0
- package/template/AGENTS.md +58 -0
- package/template/CLAUDE.md +5 -0
- package/template/LICENSE +21 -0
- package/template/devflow/context/ai-interaction.md +34 -0
- package/template/devflow/context/coding-standards.md +19 -0
- package/template/devflow/context/current-stage.md +6 -0
- package/template/devflow/context/findings.md +13 -0
- package/template/devflow/context/project-overview.md +20 -0
- package/template/devflow/reference/running-id-contract.md +39 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: obsidian-cli
|
|
3
|
+
description: "Use the Obsidian CLI to read, create, search, and manage vault content, or to develop and debug Obsidian plugins and themes from the command line."
|
|
4
|
+
risk: unknown
|
|
5
|
+
source: "https://github.com/kepano/obsidian-skills"
|
|
6
|
+
date_added: "2026-03-21"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Obsidian CLI
|
|
10
|
+
|
|
11
|
+
Use the `obsidian` CLI to interact with a running Obsidian instance. Requires Obsidian to be open.
|
|
12
|
+
|
|
13
|
+
## When to Use
|
|
14
|
+
|
|
15
|
+
- Use when managing vault content through the Obsidian CLI.
|
|
16
|
+
- Use when developing or debugging Obsidian plugins and themes from the command line.
|
|
17
|
+
- Use when the user wants shell-driven interaction with a running Obsidian app.
|
|
18
|
+
|
|
19
|
+
## Command reference
|
|
20
|
+
|
|
21
|
+
Run `obsidian help` to see all available commands. This is always up to date. Full docs: https://help.obsidian.md/cli
|
|
22
|
+
|
|
23
|
+
## Syntax
|
|
24
|
+
|
|
25
|
+
**Parameters** take a value with `=`. Quote values with spaces:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
obsidian create name="My Note" content="Hello world"
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**Flags** are boolean switches with no value:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
obsidian create name="My Note" silent overwrite
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
For multiline content use `\n` for newline and `\t` for tab.
|
|
38
|
+
|
|
39
|
+
## File targeting
|
|
40
|
+
|
|
41
|
+
Many commands accept `file` or `path` to target a file. Without either, the active file is used.
|
|
42
|
+
|
|
43
|
+
- `file=<name>` — resolves like a wikilink (name only, no path or extension needed)
|
|
44
|
+
- `path=<path>` — exact path from vault root, e.g. `folder/note.md`
|
|
45
|
+
|
|
46
|
+
## Vault targeting
|
|
47
|
+
|
|
48
|
+
Commands target the most recently focused vault by default. Use `vault=<name>` as the first parameter to target a specific vault:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
obsidian vault="My Vault" search query="test"
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Common patterns
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
obsidian read file="My Note"
|
|
58
|
+
obsidian create name="New Note" content="# Hello" template="Template" silent
|
|
59
|
+
obsidian append file="My Note" content="New line"
|
|
60
|
+
obsidian search query="search term" limit=10
|
|
61
|
+
obsidian daily:read
|
|
62
|
+
obsidian daily:append content="- [ ] New task"
|
|
63
|
+
obsidian property:set name="status" value="done" file="My Note"
|
|
64
|
+
obsidian tasks daily todo
|
|
65
|
+
obsidian tags sort=count counts
|
|
66
|
+
obsidian backlinks file="My Note"
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Use `--copy` on any command to copy output to clipboard. Use `silent` to prevent files from opening. Use `total` on list commands to get a count.
|
|
70
|
+
|
|
71
|
+
## Plugin development
|
|
72
|
+
|
|
73
|
+
### Develop/test cycle
|
|
74
|
+
|
|
75
|
+
After making code changes to a plugin or theme, follow this workflow:
|
|
76
|
+
|
|
77
|
+
1. **Reload** the plugin to pick up changes:
|
|
78
|
+
```bash
|
|
79
|
+
obsidian plugin:reload id=my-plugin
|
|
80
|
+
```
|
|
81
|
+
2. **Check for errors** — if errors appear, fix and repeat from step 1:
|
|
82
|
+
```bash
|
|
83
|
+
obsidian dev:errors
|
|
84
|
+
```
|
|
85
|
+
3. **Verify visually** with a screenshot or DOM inspection:
|
|
86
|
+
```bash
|
|
87
|
+
obsidian dev:screenshot path=screenshot.png
|
|
88
|
+
obsidian dev:dom selector=".workspace-leaf" text
|
|
89
|
+
```
|
|
90
|
+
4. **Check console output** for warnings or unexpected logs:
|
|
91
|
+
```bash
|
|
92
|
+
obsidian dev:console level=error
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Additional developer commands
|
|
96
|
+
|
|
97
|
+
Run JavaScript in the app context:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
obsidian eval code="app.vault.getFiles().length"
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Inspect CSS values:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
obsidian dev:css selector=".workspace-leaf" prop=background-color
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Toggle mobile emulation:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
obsidian dev:mobile on
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Run `obsidian help` to see additional developer commands including CDP and debugger controls.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: obsidian-clipper-template-creator
|
|
3
|
+
description: Guide for creating templates for the Obsidian Web Clipper. Use when you want to create a new clipping template, understand available variables, or format clipped content.
|
|
4
|
+
risk: safe
|
|
5
|
+
source: community
|
|
6
|
+
date_added: "2026-02-27"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Obsidian Web Clipper Template Creator
|
|
10
|
+
|
|
11
|
+
This skill helps you create importable JSON templates for the Obsidian Web Clipper.
|
|
12
|
+
|
|
13
|
+
## Workflow
|
|
14
|
+
|
|
15
|
+
1. **Identify User Intent:** specific site (YouTube), specific type (Recipe), or general clipping?
|
|
16
|
+
2. **Check Existing Bases:** The user likely has a "Base" schema defined in `Bases/`.
|
|
17
|
+
- **Action:** Read `Bases/*.base` to find a matching category (e.g., `Recipes.base`).
|
|
18
|
+
- **Action:** Use the properties defined in the Base to structure the Clipper template properties.
|
|
19
|
+
- See [references/bases-workflow.md](references/bases-workflow.md) for details.
|
|
20
|
+
3. **Fetch & Analyze Reference URL:** Validate variables against a real page.
|
|
21
|
+
- **Action:** Ask the user for a sample URL of the content they want to clip (if not provided).
|
|
22
|
+
- **Action (REQUIRED):** Use **WebFetch** to retrieve page content; if WebFetch is not available, use a browser DOM snapshot. See [references/analysis-workflow.md](references/analysis-workflow.md).
|
|
23
|
+
- **Action:** Analyze the HTML for Schema.org JSON, Meta tags, and CSS selectors.
|
|
24
|
+
- **Action (REQUIRED):** Verify each selector against the fetched content. Do not guess selectors.
|
|
25
|
+
- See [references/analysis-workflow.md](references/analysis-workflow.md) for analysis techniques.
|
|
26
|
+
4. **Draft the JSON:** Create a valid JSON object following the schema.
|
|
27
|
+
- See [references/json-schema.md](references/json-schema.md).
|
|
28
|
+
5. **Consider template logic:** Use conditionals for optional blocks (e.g. show nutrition only if present), loops for list data, variable assignment to avoid repeating expressions, and fallbacks for missing variables. Use logic only when it improves the template; keep simple templates simple. See [references/logic.md](references/logic.md).
|
|
29
|
+
6. **Verify Variables:** Ensure the chosen variables (Preset, Schema, Selector) exist in your analysis.
|
|
30
|
+
- **Action (REQUIRED):** If a selector cannot be verified from the fetched content, state that explicitly and ask for another URL.
|
|
31
|
+
- See [references/variables.md](references/variables.md).
|
|
32
|
+
|
|
33
|
+
## Selector Verification Rules
|
|
34
|
+
|
|
35
|
+
- **Always verify selectors** against live page content before responding.
|
|
36
|
+
- **Never guess selectors.** If the DOM cannot be accessed or the element is missing, ask for another URL or a screenshot.
|
|
37
|
+
- **Prefer stable selectors** (data attributes, semantic roles, unique IDs) over fragile class chains.
|
|
38
|
+
- **Document the target element** in your reasoning (e.g., "About sidebar paragraph") to reduce mismatch.
|
|
39
|
+
|
|
40
|
+
## Output Format
|
|
41
|
+
|
|
42
|
+
**ALWAYS** output the final result as a JSON code block that the user can copy and import.
|
|
43
|
+
|
|
44
|
+
The Clipper template editor validates template syntax.
|
|
45
|
+
If you use template logic (conditionals, loops, variable assignment), ensure it follows the syntax in [references/logic.md](references/logic.md) and the official [Logic](https://help.obsidian.md/web-clipper/logic) docs so the template passes validation.
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"schemaVersion": "0.1.0",
|
|
50
|
+
"name": "My Template",
|
|
51
|
+
...
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Resources
|
|
56
|
+
|
|
57
|
+
- [references/variables.md](references/variables.md) - Available data variables.
|
|
58
|
+
- [references/filters.md](references/filters.md) - Formatting filters.
|
|
59
|
+
- [references/json-schema.md](references/json-schema.md) - JSON structure documentation.
|
|
60
|
+
- [references/logic.md](references/logic.md) - Template logic.
|
|
61
|
+
- [references/bases-workflow.md](references/bases-workflow.md) - How to map Bases to Templates.
|
|
62
|
+
- [references/analysis-workflow.md](references/analysis-workflow.md) - How to validate page data.
|
|
63
|
+
|
|
64
|
+
### Official Documentation
|
|
65
|
+
|
|
66
|
+
- [Variables](https://help.obsidian.md/web-clipper/variables)
|
|
67
|
+
- [Filters](https://help.obsidian.md/web-clipper/filters)
|
|
68
|
+
- [Logic](https://help.obsidian.md/web-clipper/logic)
|
|
69
|
+
- [Templates](https://help.obsidian.md/web-clipper/templates)
|
|
70
|
+
|
|
71
|
+
## Examples
|
|
72
|
+
|
|
73
|
+
See [assets/](assets/) for JSON examples.
|
package/template/.claude/skills/obsidian-clipper-template-creator/assets/clipping-template.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "0.1.0",
|
|
3
|
+
"name": "General Clipping",
|
|
4
|
+
"behavior": "create",
|
|
5
|
+
"noteContentFormat": "{{content}}",
|
|
6
|
+
"properties": [
|
|
7
|
+
{
|
|
8
|
+
"name": "categories",
|
|
9
|
+
"value": "[[Clippings]]",
|
|
10
|
+
"type": "multitext"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"name": "author",
|
|
14
|
+
"value": "[[{{author}}]]",
|
|
15
|
+
"type": "multitext"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "source",
|
|
19
|
+
"value": "{{url}}",
|
|
20
|
+
"type": "text"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"name": "via",
|
|
24
|
+
"value": "",
|
|
25
|
+
"type": "text"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"name": "published",
|
|
29
|
+
"value": "{{published}}",
|
|
30
|
+
"type": "datetime"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"name": "created",
|
|
34
|
+
"value": "{{date}}",
|
|
35
|
+
"type": "datetime"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"name": "topics",
|
|
39
|
+
"value": "",
|
|
40
|
+
"type": "multitext"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"name": "description",
|
|
44
|
+
"value": "{{description}}",
|
|
45
|
+
"type": "text"
|
|
46
|
+
}
|
|
47
|
+
],
|
|
48
|
+
"triggers": [],
|
|
49
|
+
"noteNameFormat": "{{title}}",
|
|
50
|
+
"path": "Clippings/"
|
|
51
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "0.1.0",
|
|
3
|
+
"name": "Recipe",
|
|
4
|
+
"behavior": "create",
|
|
5
|
+
"noteContentFormat": "![{{schema:Recipe:image|first}}]\n\n## Description\n{{schema:Recipe:description}}\n\n## Ingredients\n{{schema:Recipe:recipeIngredient|list}}\n\n## Instructions\n{{schema:Recipe:recipeInstructions|map:step =>> step.text|list}}\n\n## Nutrition\n- Calories: {{schema:Recipe:nutrition.calories}}",
|
|
6
|
+
"properties": [
|
|
7
|
+
{
|
|
8
|
+
"name": "categories",
|
|
9
|
+
"value": "[[Recipes]]",
|
|
10
|
+
"type": "multitext"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"name": "author",
|
|
14
|
+
"value": "[[{{schema:Recipe:author.name}}]]",
|
|
15
|
+
"type": "text"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "source",
|
|
19
|
+
"value": "{{url}}",
|
|
20
|
+
"type": "text"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"name": "ingredients",
|
|
24
|
+
"value": "{{schema:Recipe:recipeIngredient}}",
|
|
25
|
+
"type": "multitext"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"name": "cuisine",
|
|
29
|
+
"value": "{{schema:Recipe:recipeCuisine}}",
|
|
30
|
+
"type": "text"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"name": "rating",
|
|
34
|
+
"value": "",
|
|
35
|
+
"type": "number"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"name": "type",
|
|
39
|
+
"value": "Recipe",
|
|
40
|
+
"type": "text"
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"triggers": [
|
|
44
|
+
"schema:Recipe"
|
|
45
|
+
],
|
|
46
|
+
"noteNameFormat": "{{schema:Recipe:name}}",
|
|
47
|
+
"path": "Recipes/"
|
|
48
|
+
}
|
package/template/.claude/skills/obsidian-clipper-template-creator/references/analysis-workflow.md
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Analysis Workflow: Validating Variables
|
|
2
|
+
|
|
3
|
+
To ensure your template works correctly, you must validate that the target page actually contains the data you want to extract.
|
|
4
|
+
|
|
5
|
+
## 1. Fetch the Page
|
|
6
|
+
|
|
7
|
+
Use the `WebFetch` tool or a browser DOM snapshot to retrieve the content of a representative URL provided by the user.
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
WebFetch(url="https://example.com/recipe/chocolate-cake")
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## 2. Analyze the Output
|
|
14
|
+
|
|
15
|
+
### Check for Schema.org (Recommended)
|
|
16
|
+
|
|
17
|
+
Look for `<script type="application/ld+json">`. This contains structured data which is the most reliable way to extract info.
|
|
18
|
+
|
|
19
|
+
**Example Found in HTML:**
|
|
20
|
+
|
|
21
|
+
```html
|
|
22
|
+
<script type="application/ld+json">
|
|
23
|
+
{
|
|
24
|
+
"@context": "https://schema.org/",
|
|
25
|
+
"@type": "Recipe",
|
|
26
|
+
"name": "Chocolate Cake",
|
|
27
|
+
"author": {
|
|
28
|
+
"@type": "Person",
|
|
29
|
+
"name": "John Doe"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**Conclusion:**
|
|
35
|
+
|
|
36
|
+
- `{{schema:Recipe:name}}` is valid.
|
|
37
|
+
- `{{schema:Recipe:author.name}}` is valid.
|
|
38
|
+
- **Tip:** You can use `schema:Recipe` in the `triggers` array to automatically select this template for any page with this schema.
|
|
39
|
+
|
|
40
|
+
### Check for Meta Tags
|
|
41
|
+
|
|
42
|
+
Look for `<meta>` tags in the `<head>` section.
|
|
43
|
+
|
|
44
|
+
**Example Found in HTML:**
|
|
45
|
+
|
|
46
|
+
```html
|
|
47
|
+
<meta property="og:title" content="The Best Chocolate Cake" />
|
|
48
|
+
<meta name="description" content="A rich, moist chocolate cake recipe." />
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**Conclusion:**
|
|
52
|
+
|
|
53
|
+
- `{{meta:og:title}}` is valid.
|
|
54
|
+
- `{{meta:description}}` is valid.
|
|
55
|
+
|
|
56
|
+
### Check for CSS Selectors (Verified)
|
|
57
|
+
|
|
58
|
+
If Schema and Meta tags are missing, look for HTML structure (classes and IDs) to use with `{{selector:...}}`.
|
|
59
|
+
Selectors must be verified against the fetched HTML or DOM snapshot. Do not guess selectors.
|
|
60
|
+
|
|
61
|
+
**Example Found in HTML:**
|
|
62
|
+
|
|
63
|
+
```html
|
|
64
|
+
<div class="article-body">
|
|
65
|
+
<h1 id="main-title">Chocolate Cake</h1>
|
|
66
|
+
<span class="author-name">By John Doe</span>
|
|
67
|
+
</div>
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Conclusion:**
|
|
71
|
+
|
|
72
|
+
- `{{selector:h1#main-title}}` or `{{selector:h1}}` can extract the title.
|
|
73
|
+
- `{{selector:.author-name}}` can extract the author.
|
|
74
|
+
|
|
75
|
+
## 3. Verify Against Base
|
|
76
|
+
|
|
77
|
+
Compare the available data from your analysis with the properties required by the user's Base (see [bases-workflow.md](bases-workflow.md)).
|
|
78
|
+
|
|
79
|
+
- If the Base requires `ingredients` but the page has no Schema or clear list structure, warn the user that this field might need manual entry or a prompt variable.
|
package/template/.claude/skills/obsidian-clipper-template-creator/references/bases-workflow.md
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Working with Obsidian Bases
|
|
2
|
+
|
|
3
|
+
The user maintains "Bases" in `Bases/*.base` which define the schema and properties for different types of notes (e.g., Recipes, Clippings, People).
|
|
4
|
+
|
|
5
|
+
## Workflow
|
|
6
|
+
|
|
7
|
+
1. **Identify the Category:** Determine the type of content the user wants to clip (e.g., a Recipe, a News Article, a YouTube video).
|
|
8
|
+
2. **Find the Base:** Search `Bases/` for a matching `.base` file.
|
|
9
|
+
* Example: For a recipe, look for `Bases/Recipes.base`.
|
|
10
|
+
* Example: For a generic article, look for `Bases/Clippings.base`.
|
|
11
|
+
3. **Read the Base:** Read the content of the `.base` file to understand the required properties.
|
|
12
|
+
|
|
13
|
+
## Interpreting .base Files
|
|
14
|
+
|
|
15
|
+
Base files use a YAML-like structure. Look for the `properties` section.
|
|
16
|
+
|
|
17
|
+
```yaml
|
|
18
|
+
properties:
|
|
19
|
+
file.name:
|
|
20
|
+
displayName: name
|
|
21
|
+
note.author:
|
|
22
|
+
displayName: author
|
|
23
|
+
note.type:
|
|
24
|
+
displayName: type
|
|
25
|
+
note.ingredients:
|
|
26
|
+
displayName: ingredients
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
* `note.X` corresponds to a property name `X` in the frontmatter.
|
|
30
|
+
* `displayName` helps understand the intent, but the property key (e.g., `author`, `type`, `ingredients`) is what matters for the template.
|
|
31
|
+
|
|
32
|
+
## Mapping to Clipper Properties
|
|
33
|
+
|
|
34
|
+
When creating the JSON for the Web Clipper, map the Base properties to the `properties` array in the JSON.
|
|
35
|
+
|
|
36
|
+
| Base Property | Clipper JSON Property Name | Value Strategy |
|
|
37
|
+
| :--- | :--- | :--- |
|
|
38
|
+
| `note.author` | `author` | `{{author}}` or `{{schema:author.name}}` |
|
|
39
|
+
| `note.source` | `source` | `{{url}}` |
|
|
40
|
+
| `note.published` | `published` | `{{published}}` |
|
|
41
|
+
| `note.ingredients` | `ingredients` | `{{schema:Recipe:recipeIngredient}}` |
|
|
42
|
+
| `note.type` | `type` | Constant (e.g., `Recipe`) or empty |
|
|
43
|
+
|
|
44
|
+
**Crucial Step:** Ask the user which properties should be automatically filled, which should be hardcoded (e.g., `type: Recipe`), and which should be left empty for manual entry.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Obsidian Web Clipper Filters
|
|
2
|
+
|
|
3
|
+
**Official Docs:** [help.obsidian.md/web-clipper/filters](https://help.obsidian.md/web-clipper/filters)
|
|
4
|
+
|
|
5
|
+
Use filters to format variables: `{{variable|filter}}`.
|
|
6
|
+
|
|
7
|
+
## Text Formatting
|
|
8
|
+
- `markdown`: Convert HTML to Markdown.
|
|
9
|
+
- `strip_tags`: Remove HTML tags.
|
|
10
|
+
- `trim`: Remove whitespace.
|
|
11
|
+
- `upper`: Convert to uppercase.
|
|
12
|
+
- `lower`: Convert to lowercase.
|
|
13
|
+
- `title`: Title Case.
|
|
14
|
+
- `capitalize`: Capitalize first letter.
|
|
15
|
+
- `camel`: CamelCase.
|
|
16
|
+
- `kebab`: kebab-case.
|
|
17
|
+
- `snake`: snake_case.
|
|
18
|
+
- `pascal`: PascalCase.
|
|
19
|
+
- `replace:"old","new"`: Replace text.
|
|
20
|
+
- `safe_name`: Make safe for filenames.
|
|
21
|
+
- `blockquote`: Format as blockquote.
|
|
22
|
+
- `link`: Create markdown link.
|
|
23
|
+
- `wikilink`: Create [[wikilink]].
|
|
24
|
+
- `list`: Format array as list.
|
|
25
|
+
- `table`: Format array as table.
|
|
26
|
+
- `callout`: Format as callout block.
|
|
27
|
+
|
|
28
|
+
## Dates
|
|
29
|
+
- `date:"format"`: Format date (e.g., `YYYY-MM-DD`).
|
|
30
|
+
- `date_modify:"+1 day"`: Modify date.
|
|
31
|
+
- `duration`: Format duration.
|
|
32
|
+
|
|
33
|
+
## Numbers
|
|
34
|
+
- `calc`: Perform calculations.
|
|
35
|
+
- `length`: Get length of string/array.
|
|
36
|
+
- `round`: Round numbers.
|
|
37
|
+
|
|
38
|
+
## HTML Processing
|
|
39
|
+
- `remove_html`: Remove HTML tags.
|
|
40
|
+
- `remove_attr`: Remove attributes.
|
|
41
|
+
- `strip_attr`: Strip specific attributes.
|
|
42
|
+
|
|
43
|
+
## Arrays and Objects
|
|
44
|
+
- `map`: Transform array items (e.g., `map:item =>> item.text`).
|
|
45
|
+
- `join:"separator"`: Join array items.
|
|
46
|
+
- `split:"separator"`: Split string into array.
|
|
47
|
+
- `first`: First item.
|
|
48
|
+
- `last`: Last item.
|
|
49
|
+
- `slice:start,end`: Slice array.
|
|
50
|
+
- `unique`: Unique items.
|
|
51
|
+
- `template:"format"`: Format items using a template string.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Obsidian Web Clipper JSON Schema
|
|
2
|
+
|
|
3
|
+
The Obsidian Web Clipper imports templates via JSON files.
|
|
4
|
+
|
|
5
|
+
## Root Structure
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"schemaVersion": "0.1.0",
|
|
10
|
+
"name": "Template Name",
|
|
11
|
+
"behavior": "create",
|
|
12
|
+
"noteContentFormat": "Markdown content here...",
|
|
13
|
+
"properties": [],
|
|
14
|
+
"triggers": [],
|
|
15
|
+
"noteNameFormat": "{{title}}",
|
|
16
|
+
"path": "Inbox/"
|
|
17
|
+
}
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### Fields
|
|
21
|
+
|
|
22
|
+
* **`schemaVersion`**: Always "0.1.0".
|
|
23
|
+
* **`name`**: The display name of the template in the Clipper.
|
|
24
|
+
* **`behavior`**: How the note is created.
|
|
25
|
+
* `create`: Create a new note.
|
|
26
|
+
* `append-specific`: Append to a specific note (requires `path` to be a full file path).
|
|
27
|
+
* `append-daily`: Append to the daily note.
|
|
28
|
+
* **`noteContentFormat`**: The body of the note.
|
|
29
|
+
* Use `\n` for newlines.
|
|
30
|
+
* Can use all variables (e.g., `{{content}}`, `{{selection}}`).
|
|
31
|
+
* Supports **template logic** (conditionals, loops, variable assignment) as documented in [logic.md](logic.md).
|
|
32
|
+
* **`noteNameFormat`**: The filename pattern (e.g., `{{date}} - {{title}}`).
|
|
33
|
+
* **`path`**: The location to save the note.
|
|
34
|
+
* For `create` behavior: The *folder* to save the note in (e.g., `Clippings/` or `Recipes/`).
|
|
35
|
+
* For `append-specific` behavior: The *full file path* of the note to append to (e.g., `Databases/Recipes.md`).
|
|
36
|
+
* **`triggers`**: Array of strings to automatically select this template.
|
|
37
|
+
* **URL Patterns**: `["https://www.youtube.com/watch"]` (Simple string or Regex).
|
|
38
|
+
* **Schema Types**: `["schema:Recipe"]` (Triggers if the page contains this Schema.org type).
|
|
39
|
+
|
|
40
|
+
## Properties
|
|
41
|
+
|
|
42
|
+
The `properties` array defines the YAML frontmatter of the note.
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
"properties": [
|
|
46
|
+
{
|
|
47
|
+
"name": "category",
|
|
48
|
+
"value": "Recipes",
|
|
49
|
+
"type": "text"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"name": "published",
|
|
53
|
+
"value": "{{published}}",
|
|
54
|
+
"type": "datetime"
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Property Types
|
|
60
|
+
|
|
61
|
+
* **`text`**: Simple text string.
|
|
62
|
+
* **`multitext`**: List of text strings (for tags/aliases).
|
|
63
|
+
* **`number`**: Numeric value.
|
|
64
|
+
* **`checkbox`**: Boolean true/false.
|
|
65
|
+
* **`date`**: Date string (YYYY-MM-DD).
|
|
66
|
+
* **`datetime`**: Date and time string.
|
|
67
|
+
|
|
68
|
+
### Property Object Structure
|
|
69
|
+
|
|
70
|
+
* **`name`**: The key in the YAML frontmatter.
|
|
71
|
+
* **`value`**: The value to populate. Can contain variables and the same **template logic** (conditionals, loops, variable assignment) as `noteContentFormat`; see [logic.md](logic.md).
|
|
72
|
+
* **`type`**: One of the types listed above.
|
|
73
|
+
|
|
74
|
+
## Template validation
|
|
75
|
+
|
|
76
|
+
The Clipper template editor checks template syntax.
|
|
77
|
+
Invalid logic in `noteContentFormat` or property `value` fields will be reported in the editor; use valid syntax as described in the [Logic](https://help.obsidian.md/web-clipper/logic) documentation.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Obsidian Web Clipper Template Logic
|
|
2
|
+
|
|
3
|
+
**Official docs:** [Logic - Obsidian Help](https://help.obsidian.md/web-clipper/logic)
|
|
4
|
+
|
|
5
|
+
As of **Obsidian Web Clipper 1.0.0**, templates support logic in `noteContentFormat` and in property `value` fields: conditionals, loops, variable assignment, and fallbacks. This page describes how each works. For authoritative syntax and delimiters, use the official documentation link above.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## When to use logic
|
|
10
|
+
|
|
11
|
+
- **Conditionals:** Show optional sections only when data exists (e.g. nutrition block only if `{{schema:Recipe:nutrition}}` is present).
|
|
12
|
+
- **Variable assignment:** Assign a value once and reuse it in the template to avoid repeating long expressions.
|
|
13
|
+
- **Fallbacks:** Provide a default when a variable is empty so the note still looks correct.
|
|
14
|
+
- **Loops:** Iterate over arrays (ingredients, steps, tags) to format each item; combine with filters for list/table output.
|
|
15
|
+
|
|
16
|
+
Keep simple templates simple; add logic only when it improves the result or avoids broken output for missing data.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Conditionals
|
|
21
|
+
|
|
22
|
+
Conditionals include or exclude blocks based on whether a value exists or meets a condition.
|
|
23
|
+
|
|
24
|
+
- **Comparison operators:** Compare two values (e.g. equals, not equals, greater than, less than). Exact operators are defined in the official Logic page.
|
|
25
|
+
- **Logical operators:** Combine or negate conditions (e.g. and, or, not; or symbol forms like `&&`, `||`, `!`). Use these to build compound conditions.
|
|
26
|
+
- **Truthiness:** Values are evaluated in a JavaScript-like way for conditions. Empty strings, empty arrays, and missing variables are typically falsy; non-empty values are truthy. See the official docs for the full rules.
|
|
27
|
+
- **Typical use:** Wrap optional sections (e.g. author, nutrition, image) in a conditional so they only render when the variable has a value.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Assign a variable
|
|
32
|
+
|
|
33
|
+
You can assign a variable once and reuse it in the same template. Use this to avoid repeating long variable or filter chains (e.g. the same schema path or selector used in multiple places). The assigned variable is available for the rest of the template in that scope. Exact syntax (e.g. assignment block format and scope) is in the official Logic documentation.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Fallbacks
|
|
38
|
+
|
|
39
|
+
Fallbacks supply a default when a variable is empty.
|
|
40
|
+
|
|
41
|
+
- **Default when missing:** Provide a fallback value so the template still produces readable output when the primary variable is empty.
|
|
42
|
+
- **Chaining fallbacks:** You can chain multiple fallbacks (e.g. try variable A, then B, then a literal default). The first non-empty value is used.
|
|
43
|
+
- **With filters:** Fallbacks can be used together with filters. The evaluation order (variable → fallback → filter, or other) is defined in the official docs under "With filters" and "Evaluation order."
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Loops
|
|
48
|
+
|
|
49
|
+
Loops iterate over array values (e.g. ingredients, instructions, tags).
|
|
50
|
+
|
|
51
|
+
- **Loop sources:** The array to iterate over—typically a variable that returns a list (e.g. `{{schema:Recipe:recipeIngredient}}`, `{{schema:Recipe:recipeInstructions}}`).
|
|
52
|
+
- **Loop variables:** Inside the loop you get a variable for the current item; you may also get an index or other loop metadata. Names and behavior are described in the official "Loop variables" and "Accessing array items by index" sections.
|
|
53
|
+
- **Accessing array items by index:** When you need the nth item of an array outside a loop, or need the current index inside a loop, the syntax is defined in the official documentation.
|
|
54
|
+
- **Nested loops:** Loops can be nested when you have arrays of structured data (e.g. steps each with sub-steps).
|
|
55
|
+
- **Combine logic:** Loops and conditionals can be combined (e.g. loop over items and show a subsection only when a field exists, or conditionally include a loop).
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Evaluation order and combining logic
|
|
60
|
+
|
|
61
|
+
The order in which variables, filters, fallbacks, conditionals, and loops are evaluated is defined in the official documentation. When you combine logic (e.g. conditionals inside loops, or variables used in both conditionals and output), follow the official "Evaluation order" and "Combine logic" sections so behavior matches expectations.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Template validation
|
|
66
|
+
|
|
67
|
+
The Obsidian Web Clipper template editor **validates template syntax**. Invalid logic (e.g. malformed conditionals or loops) will be reported in the editor. When generating templates, use only logic constructs and syntax described on the official Logic page so that the template passes validation.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Obsidian Web Clipper Variables
|
|
2
|
+
|
|
3
|
+
**Official Docs:** [help.obsidian.md/web-clipper/variables](https://help.obsidian.md/web-clipper/variables)
|
|
4
|
+
|
|
5
|
+
## Preset Variables
|
|
6
|
+
Automatically extracted from the page.
|
|
7
|
+
|
|
8
|
+
- `{{content}}`: Main article content (markdown).
|
|
9
|
+
- `{{contentHtml}}`: Main article content (HTML).
|
|
10
|
+
- `{{title}}`: Page title.
|
|
11
|
+
- `{{url}}`: Page URL.
|
|
12
|
+
- `{{author}}`: Author name.
|
|
13
|
+
- `{{date}}`: Current date.
|
|
14
|
+
- `{{published}}`: Publication date (if detected).
|
|
15
|
+
- `{{site}}`: Site name.
|
|
16
|
+
- `{{description}}`: Meta description.
|
|
17
|
+
- `{{highlights}}`: Highlighted text (if any).
|
|
18
|
+
- `{{selection}}`: Selected text.
|
|
19
|
+
- `{{fullHtml}}`: Full page HTML.
|
|
20
|
+
- `{{favicon}}`: Favicon URL.
|
|
21
|
+
- `{{image}}`: Social share image URL.
|
|
22
|
+
- `{{words}}`: Word count.
|
|
23
|
+
- `{{domain}}`: Domain name.
|
|
24
|
+
|
|
25
|
+
## Prompt Variables (AI)
|
|
26
|
+
Use `{{"Your prompt here"}}` to ask the AI Interpreter to extract or summarize info.
|
|
27
|
+
*Requires Interpreter to be enabled.*
|
|
28
|
+
|
|
29
|
+
Examples:
|
|
30
|
+
- `{{"Summarize in 3 bullet points"}}`
|
|
31
|
+
- `{{"Extract the ingredients list"}}`
|
|
32
|
+
- `{{"Translate to English"}}`
|
|
33
|
+
|
|
34
|
+
## Selector Variables
|
|
35
|
+
Extract content using CSS selectors.
|
|
36
|
+
Syntax: `{{selector:css-selector}}` or `{{selector:css-selector?attribute}}`
|
|
37
|
+
|
|
38
|
+
Examples:
|
|
39
|
+
- `{{selector:h1}}`: Text of H1 tag.
|
|
40
|
+
- `{{selector:img.hero?src}}`: Source of image with class 'hero'.
|
|
41
|
+
- `{{selector:.author}}`: Text of element with class 'author'.
|
|
42
|
+
- `{{selectorHtml:body|markdown}}`: Full HTML converted to markdown.
|
|
43
|
+
|
|
44
|
+
## Meta Variables
|
|
45
|
+
Extract data from meta tags.
|
|
46
|
+
Syntax: `{{meta:name}}` or `{{meta:property}}`
|
|
47
|
+
|
|
48
|
+
Examples:
|
|
49
|
+
- `{{meta:description}}`
|
|
50
|
+
- `{{meta:og:title}}`
|
|
51
|
+
|
|
52
|
+
## Schema.org Variables
|
|
53
|
+
Extract structured data.
|
|
54
|
+
Syntax: `{{schema:Property}}` or `{{schema:@Type:Property}}`
|
|
55
|
+
|
|
56
|
+
Examples:
|
|
57
|
+
- `{{schema:Recipe:recipeIngredient}}`
|
|
58
|
+
- `{{schema:author.name}}`
|
|
59
|
+
- `{{schema:Article:headline}}`
|
|
60
|
+
|
|
61
|
+
## Fallbacks
|
|
62
|
+
When a variable is empty, you can supply a default value (fallback).
|
|
63
|
+
Fallbacks can be chained (try variable A, then B, then a literal default) and used with filters.
|
|
64
|
+
For syntax and evaluation order, see [logic.md](logic.md).
|