@dtt_siye/atool 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +235 -0
- package/VERSION +1 -0
- package/agents/code-reviewer.md +29 -0
- package/bin/atool.js +235 -0
- package/bin/postinstall.js +23 -0
- package/hooks/doc-sync-reminder +155 -0
- package/hooks/hooks-cursor.json +37 -0
- package/hooks/hooks.json +37 -0
- package/hooks/prompt-guard +135 -0
- package/hooks/session-start +286 -0
- package/install.sh +603 -0
- package/lib/analyze-source.sh +1265 -0
- package/lib/common.sh +1041 -0
- package/lib/compute-importance.sh +598 -0
- package/lib/detect-stack.sh +354 -0
- package/lib/generate-visualization.sh +266 -0
- package/lib/install-claude.sh +43 -0
- package/lib/install-cursor.sh +281 -0
- package/lib/install-hooks.sh +285 -0
- package/lib/install-kiro.sh +543 -0
- package/lib/install-mcp.sh +99 -0
- package/lib/install-skills.sh +129 -0
- package/lib/knowledge-graph.sh +1014 -0
- package/lib/multi-dimensional-analysis.sh +413 -0
- package/lib/pre-scan.sh +1045 -0
- package/lib/project-init.sh +552 -0
- package/lib/visualization-template.html +545 -0
- package/mcp/recommended.json +24 -0
- package/package.json +39 -0
- package/skills/_superpowers/.claude-plugin/marketplace.json +20 -0
- package/skills/_superpowers/.claude-plugin/plugin.json +20 -0
- package/skills/_superpowers/.codex/INSTALL.md +67 -0
- package/skills/_superpowers/.cursor-plugin/plugin.json +25 -0
- package/skills/_superpowers/.gitattributes +18 -0
- package/skills/_superpowers/.github/FUNDING.yml +3 -0
- package/skills/_superpowers/.github/ISSUE_TEMPLATE/bug_report.md +52 -0
- package/skills/_superpowers/.github/ISSUE_TEMPLATE/config.yml +5 -0
- package/skills/_superpowers/.github/ISSUE_TEMPLATE/feature_request.md +34 -0
- package/skills/_superpowers/.github/ISSUE_TEMPLATE/platform_support.md +23 -0
- package/skills/_superpowers/.github/PULL_REQUEST_TEMPLATE.md +87 -0
- package/skills/_superpowers/.opencode/INSTALL.md +83 -0
- package/skills/_superpowers/.opencode/plugins/superpowers.js +107 -0
- package/skills/_superpowers/CHANGELOG.md +13 -0
- package/skills/_superpowers/CODE_OF_CONDUCT.md +128 -0
- package/skills/_superpowers/GEMINI.md +2 -0
- package/skills/_superpowers/LICENSE +21 -0
- package/skills/_superpowers/README.md +187 -0
- package/skills/_superpowers/RELEASE-NOTES.md +1083 -0
- package/skills/_superpowers/agents/code-reviewer.md +48 -0
- package/skills/_superpowers/commands/brainstorm.md +5 -0
- package/skills/_superpowers/commands/execute-plan.md +5 -0
- package/skills/_superpowers/commands/write-plan.md +5 -0
- package/skills/_superpowers/docs/README.codex.md +126 -0
- package/skills/_superpowers/docs/README.opencode.md +130 -0
- package/skills/_superpowers/docs/plans/2025-11-22-opencode-support-design.md +294 -0
- package/skills/_superpowers/docs/plans/2025-11-22-opencode-support-implementation.md +1095 -0
- package/skills/_superpowers/docs/plans/2025-11-28-skills-improvements-from-user-feedback.md +711 -0
- package/skills/_superpowers/docs/plans/2026-01-17-visual-brainstorming.md +571 -0
- package/skills/_superpowers/docs/superpowers/plans/2026-01-22-document-review-system.md +301 -0
- package/skills/_superpowers/docs/superpowers/plans/2026-02-19-visual-brainstorming-refactor.md +523 -0
- package/skills/_superpowers/docs/superpowers/plans/2026-03-11-zero-dep-brainstorm-server.md +479 -0
- package/skills/_superpowers/docs/superpowers/plans/2026-03-23-codex-app-compatibility.md +564 -0
- package/skills/_superpowers/docs/superpowers/specs/2026-01-22-document-review-system-design.md +136 -0
- package/skills/_superpowers/docs/superpowers/specs/2026-02-19-visual-brainstorming-refactor-design.md +162 -0
- package/skills/_superpowers/docs/superpowers/specs/2026-03-11-zero-dep-brainstorm-server-design.md +118 -0
- package/skills/_superpowers/docs/superpowers/specs/2026-03-23-codex-app-compatibility-design.md +244 -0
- package/skills/_superpowers/docs/testing.md +303 -0
- package/skills/_superpowers/docs/windows/polyglot-hooks.md +212 -0
- package/skills/_superpowers/gemini-extension.json +6 -0
- package/skills/_superpowers/hooks/hooks-cursor.json +10 -0
- package/skills/_superpowers/hooks/hooks.json +16 -0
- package/skills/_superpowers/hooks/run-hook.cmd +46 -0
- package/skills/_superpowers/hooks/session-start +57 -0
- package/skills/_superpowers/package.json +6 -0
- package/skills/_superpowers/skills/brainstorming/SKILL.md +164 -0
- package/skills/_superpowers/skills/brainstorming/scripts/frame-template.html +214 -0
- package/skills/_superpowers/skills/brainstorming/scripts/helper.js +88 -0
- package/skills/_superpowers/skills/brainstorming/scripts/server.cjs +354 -0
- package/skills/_superpowers/skills/brainstorming/scripts/start-server.sh +148 -0
- package/skills/_superpowers/skills/brainstorming/scripts/stop-server.sh +56 -0
- package/skills/_superpowers/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
- package/skills/_superpowers/skills/brainstorming/visual-companion.md +287 -0
- package/skills/_superpowers/skills/dispatching-parallel-agents/SKILL.md +182 -0
- package/skills/_superpowers/skills/executing-plans/SKILL.md +70 -0
- package/skills/_superpowers/skills/finishing-a-development-branch/SKILL.md +200 -0
- package/skills/_superpowers/skills/receiving-code-review/SKILL.md +213 -0
- package/skills/_superpowers/skills/requesting-code-review/SKILL.md +105 -0
- package/skills/_superpowers/skills/requesting-code-review/code-reviewer.md +146 -0
- package/skills/_superpowers/skills/subagent-driven-development/SKILL.md +277 -0
- package/skills/_superpowers/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -0
- package/skills/_superpowers/skills/subagent-driven-development/implementer-prompt.md +113 -0
- package/skills/_superpowers/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
- package/skills/_superpowers/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/skills/_superpowers/skills/systematic-debugging/SKILL.md +296 -0
- package/skills/_superpowers/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/skills/_superpowers/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/skills/_superpowers/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/skills/_superpowers/skills/systematic-debugging/find-polluter.sh +63 -0
- package/skills/_superpowers/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/skills/_superpowers/skills/systematic-debugging/test-academic.md +14 -0
- package/skills/_superpowers/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/skills/_superpowers/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/skills/_superpowers/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/skills/_superpowers/skills/test-driven-development/SKILL.md +371 -0
- package/skills/_superpowers/skills/test-driven-development/testing-anti-patterns.md +299 -0
- package/skills/_superpowers/skills/using-git-worktrees/SKILL.md +218 -0
- package/skills/_superpowers/skills/using-superpowers/SKILL.md +115 -0
- package/skills/_superpowers/skills/using-superpowers/references/codex-tools.md +100 -0
- package/skills/_superpowers/skills/using-superpowers/references/gemini-tools.md +33 -0
- package/skills/_superpowers/skills/verification-before-completion/SKILL.md +139 -0
- package/skills/_superpowers/skills/writing-plans/SKILL.md +152 -0
- package/skills/_superpowers/skills/writing-plans/plan-document-reviewer-prompt.md +49 -0
- package/skills/_superpowers/skills/writing-skills/SKILL.md +655 -0
- package/skills/_superpowers/skills/writing-skills/anthropic-best-practices.md +1150 -0
- package/skills/_superpowers/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
- package/skills/_superpowers/skills/writing-skills/graphviz-conventions.dot +172 -0
- package/skills/_superpowers/skills/writing-skills/persuasion-principles.md +187 -0
- package/skills/_superpowers/skills/writing-skills/render-graphs.js +168 -0
- package/skills/_superpowers/skills/writing-skills/testing-skills-with-subagents.md +384 -0
- package/skills/_superpowers/tests/brainstorm-server/package-lock.json +36 -0
- package/skills/_superpowers/tests/brainstorm-server/package.json +10 -0
- package/skills/_superpowers/tests/brainstorm-server/server.test.js +427 -0
- package/skills/_superpowers/tests/brainstorm-server/windows-lifecycle.test.sh +351 -0
- package/skills/_superpowers/tests/brainstorm-server/ws-protocol.test.js +392 -0
- package/skills/_superpowers/tests/claude-code/README.md +158 -0
- package/skills/_superpowers/tests/claude-code/analyze-token-usage.py +168 -0
- package/skills/_superpowers/tests/claude-code/run-skill-tests.sh +187 -0
- package/skills/_superpowers/tests/claude-code/test-document-review-system.sh +177 -0
- package/skills/_superpowers/tests/claude-code/test-helpers.sh +202 -0
- package/skills/_superpowers/tests/claude-code/test-subagent-driven-development-integration.sh +314 -0
- package/skills/_superpowers/tests/claude-code/test-subagent-driven-development.sh +165 -0
- package/skills/_superpowers/tests/explicit-skill-requests/prompts/action-oriented.txt +3 -0
- package/skills/_superpowers/tests/explicit-skill-requests/prompts/after-planning-flow.txt +17 -0
- package/skills/_superpowers/tests/explicit-skill-requests/prompts/claude-suggested-it.txt +11 -0
- package/skills/_superpowers/tests/explicit-skill-requests/prompts/i-know-what-sdd-means.txt +8 -0
- package/skills/_superpowers/tests/explicit-skill-requests/prompts/mid-conversation-execute-plan.txt +3 -0
- package/skills/_superpowers/tests/explicit-skill-requests/prompts/please-use-brainstorming.txt +1 -0
- package/skills/_superpowers/tests/explicit-skill-requests/prompts/skip-formalities.txt +3 -0
- package/skills/_superpowers/tests/explicit-skill-requests/prompts/subagent-driven-development-please.txt +1 -0
- package/skills/_superpowers/tests/explicit-skill-requests/prompts/use-systematic-debugging.txt +1 -0
- package/skills/_superpowers/tests/explicit-skill-requests/run-all.sh +70 -0
- package/skills/_superpowers/tests/explicit-skill-requests/run-claude-describes-sdd.sh +100 -0
- package/skills/_superpowers/tests/explicit-skill-requests/run-extended-multiturn-test.sh +113 -0
- package/skills/_superpowers/tests/explicit-skill-requests/run-haiku-test.sh +144 -0
- package/skills/_superpowers/tests/explicit-skill-requests/run-multiturn-test.sh +143 -0
- package/skills/_superpowers/tests/explicit-skill-requests/run-test.sh +136 -0
- package/skills/_superpowers/tests/opencode/run-tests.sh +163 -0
- package/skills/_superpowers/tests/opencode/setup.sh +73 -0
- package/skills/_superpowers/tests/opencode/test-plugin-loading.sh +72 -0
- package/skills/_superpowers/tests/opencode/test-priority.sh +198 -0
- package/skills/_superpowers/tests/opencode/test-tools.sh +104 -0
- package/skills/_superpowers/tests/skill-triggering/prompts/dispatching-parallel-agents.txt +8 -0
- package/skills/_superpowers/tests/skill-triggering/prompts/executing-plans.txt +1 -0
- package/skills/_superpowers/tests/skill-triggering/prompts/requesting-code-review.txt +3 -0
- package/skills/_superpowers/tests/skill-triggering/prompts/systematic-debugging.txt +11 -0
- package/skills/_superpowers/tests/skill-triggering/prompts/test-driven-development.txt +7 -0
- package/skills/_superpowers/tests/skill-triggering/prompts/writing-plans.txt +10 -0
- package/skills/_superpowers/tests/skill-triggering/run-all.sh +60 -0
- package/skills/_superpowers/tests/skill-triggering/run-test.sh +88 -0
- package/skills/_superpowers/tests/subagent-driven-dev/go-fractals/design.md +81 -0
- package/skills/_superpowers/tests/subagent-driven-dev/go-fractals/plan.md +172 -0
- package/skills/_superpowers/tests/subagent-driven-dev/go-fractals/scaffold.sh +45 -0
- package/skills/_superpowers/tests/subagent-driven-dev/run-test.sh +106 -0
- package/skills/_superpowers/tests/subagent-driven-dev/svelte-todo/design.md +70 -0
- package/skills/_superpowers/tests/subagent-driven-dev/svelte-todo/plan.md +222 -0
- package/skills/_superpowers/tests/subagent-driven-dev/svelte-todo/scaffold.sh +46 -0
- package/skills/ai-project-architecture/SKILL.md +632 -0
- package/skills/ai-project-architecture/reference/structure-rules.md +406 -0
- package/skills/ai-project-architecture/templates/compliance-report.md +300 -0
- package/skills/ai-project-architecture/templates/migration-plan.md +433 -0
- package/skills/ai-project-architecture/templates/verification-checklist.md +408 -0
- package/skills/android-conventions/SKILL.md +125 -0
- package/skills/atool-init/SKILL.md +141 -0
- package/skills/clarify-before-build/SKILL.md +107 -0
- package/skills/code-review/SKILL.md +406 -0
- package/skills/code-review/rules/architecture.md +285 -0
- package/skills/code-review/rules/coupling-cohesion.md +309 -0
- package/skills/code-review/rules/dead-code.md +115 -0
- package/skills/code-review/rules/deprecation-debt.md +279 -0
- package/skills/code-review/rules/duplication.md +104 -0
- package/skills/code-review/rules/error-security.md +143 -0
- package/skills/code-review/rules/maintainability.md +203 -0
- package/skills/code-review/rules/quality.md +158 -0
- package/skills/devops-conventions/SKILL.md +205 -0
- package/skills/doc-coauthoring/SKILL.md +392 -0
- package/skills/doc-standards-enforcer/SKILL.md +290 -0
- package/skills/doc-standards-enforcer/examples/valid-document-example.md +67 -0
- package/skills/doc-standards-enforcer/references/101-standards-summary.md +318 -0
- package/skills/doc-standards-enforcer/scripts/check_references.py +175 -0
- package/skills/doc-standards-enforcer/scripts/fix_common_issues.py +303 -0
- package/skills/doc-standards-enforcer/scripts/validate_doc_standards.py +332 -0
- package/skills/docx/LICENSE.txt +30 -0
- package/skills/docx/SKILL.md +200 -0
- package/skills/docx/docx-js.md +350 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/skills/docx/ooxml/schemas/mce/mc.xsd +75 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/skills/docx/ooxml/scripts/pack.py +159 -0
- package/skills/docx/ooxml/scripts/unpack.py +29 -0
- package/skills/docx/ooxml/scripts/validate.py +69 -0
- package/skills/docx/ooxml/scripts/validation/__init__.py +15 -0
- package/skills/docx/ooxml/scripts/validation/base.py +951 -0
- package/skills/docx/ooxml/scripts/validation/docx.py +274 -0
- package/skills/docx/ooxml/scripts/validation/pptx.py +315 -0
- package/skills/docx/ooxml/scripts/validation/redlining.py +279 -0
- package/skills/docx/ooxml.md +610 -0
- package/skills/docx/scripts/__init__.py +1 -0
- package/skills/docx/scripts/document.py +1276 -0
- package/skills/docx/scripts/templates/comments.xml +3 -0
- package/skills/docx/scripts/templates/commentsExtended.xml +3 -0
- package/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/skills/docx/scripts/templates/commentsIds.xml +3 -0
- package/skills/docx/scripts/templates/people.xml +3 -0
- package/skills/docx/scripts/utilities.py +374 -0
- package/skills/flutter-conventions/SKILL.md +70 -0
- package/skills/go-conventions/SKILL.md +230 -0
- package/skills/harmony-conventions/SKILL.md +156 -0
- package/skills/java-conventions/SKILL.md +277 -0
- package/skills/pdf/LICENSE.txt +30 -0
- package/skills/pdf/SKILL.md +297 -0
- package/skills/pdf/forms.md +205 -0
- package/skills/pdf/reference.md +612 -0
- package/skills/pdf/scripts/check_bounding_boxes.py +70 -0
- package/skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
- package/skills/pdf/scripts/check_fillable_fields.py +12 -0
- package/skills/pdf/scripts/convert_pdf_to_images.py +35 -0
- package/skills/pdf/scripts/create_validation_image.py +41 -0
- package/skills/pdf/scripts/extract_form_field_info.py +152 -0
- package/skills/pdf/scripts/fill_fillable_fields.py +114 -0
- package/skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
- package/skills/pptx/LICENSE.txt +30 -0
- package/skills/pptx/SKILL.md +487 -0
- package/skills/pptx/html2pptx.md +625 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/skills/pptx/ooxml/schemas/mce/mc.xsd +75 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/skills/pptx/ooxml/scripts/pack.py +159 -0
- package/skills/pptx/ooxml/scripts/unpack.py +29 -0
- package/skills/pptx/ooxml/scripts/validate.py +69 -0
- package/skills/pptx/ooxml/scripts/validation/__init__.py +15 -0
- package/skills/pptx/ooxml/scripts/validation/base.py +951 -0
- package/skills/pptx/ooxml/scripts/validation/docx.py +274 -0
- package/skills/pptx/ooxml/scripts/validation/pptx.py +315 -0
- package/skills/pptx/ooxml/scripts/validation/redlining.py +279 -0
- package/skills/pptx/ooxml.md +427 -0
- package/skills/pptx/scripts/html2pptx.js +979 -0
- package/skills/pptx/scripts/inventory.py +1020 -0
- package/skills/pptx/scripts/rearrange.py +231 -0
- package/skills/pptx/scripts/replace.py +385 -0
- package/skills/pptx/scripts/thumbnail.py +450 -0
- package/skills/project-analyze/SKILL.md +270 -0
- package/skills/project-analyze/phases/phase0-discovery.md +278 -0
- package/skills/project-analyze/phases/phase0.5-prescan.md +139 -0
- package/skills/project-analyze/phases/phase1-inventory.md +94 -0
- package/skills/project-analyze/phases/phase2-deep-analysis.md +249 -0
- package/skills/project-analyze/phases/phase2a-l4-analysis.md +94 -0
- package/skills/project-analyze/phases/phase2b-l5-analysis.md +97 -0
- package/skills/project-analyze/phases/phase3-knowledge-graph.md +120 -0
- package/skills/project-analyze/phases/phase3a-multi-dimensional.md +61 -0
- package/skills/project-analyze/phases/phase4-code-quality.md +81 -0
- package/skills/project-analyze/phases/phase5-synthesis.md +284 -0
- package/skills/project-analyze/phases/phase6-validation.md +179 -0
- package/skills/project-analyze/prompts/code-review-agent.md +122 -0
- package/skills/project-analyze/prompts/deep-analysis-agent.md +107 -0
- package/skills/project-analyze/prompts/inventory-agent.md +67 -0
- package/skills/project-analyze/prompts/l4-analysis-agent.md +98 -0
- package/skills/project-analyze/rules/android.md +282 -0
- package/skills/project-analyze/rules/devops.md +443 -0
- package/skills/project-analyze/rules/generic.md +243 -0
- package/skills/project-analyze/rules/go.md +289 -0
- package/skills/project-analyze/rules/harmony.md +257 -0
- package/skills/project-analyze/rules/java.md +507 -0
- package/skills/project-analyze/rules/mobile-flutter.md +315 -0
- package/skills/project-analyze/rules/mobile-react-native.md +283 -0
- package/skills/project-analyze/rules/mobile-swift.md +323 -0
- package/skills/project-analyze/rules/python.md +317 -0
- package/skills/project-analyze/rules/rust-tauri.md +243 -0
- package/skills/project-analyze/rules/rust.md +296 -0
- package/skills/project-analyze/rules/web-nextjs.md +364 -0
- package/skills/project-analyze/rules/web-react.md +298 -0
- package/skills/project-analyze/rules/web-vue.md +378 -0
- package/skills/project-analyze/rules/web.md +390 -0
- package/skills/project-query/SKILL.md +224 -0
- package/skills/project-query/rules/query-templates.md +212 -0
- package/skills/python-conventions/SKILL.md +169 -0
- package/skills/react-native-conventions/SKILL.md +73 -0
- package/skills/requirements-writer/README.md +153 -0
- package/skills/requirements-writer/SKILL.md +341 -0
- package/skills/requirements-writer/examples/prd-outline-example.md +217 -0
- package/skills/requirements-writer/templates/module-prd-template.md +362 -0
- package/skills/requirements-writer/templates/prd-outline-template.md +185 -0
- package/skills/requirements-writer/templates/user-story-template.md +1125 -0
- package/skills/rust-conventions/SKILL.md +361 -0
- package/skills/smart-dispatch/SKILL.md +296 -0
- package/skills/smart-dispatch/implementer-prompt.md +146 -0
- package/skills/smart-dispatch/reviewer-prompt.md +199 -0
- package/skills/software-architecture/SKILL.md +278 -0
- package/skills/swift-conventions/SKILL.md +72 -0
- package/skills/ui-ux-pro/SKILL.md +140 -0
- package/skills/verification-before-completion/SKILL.md +119 -0
- package/skills/web-conventions/SKILL.md +259 -0
- package/skills/webapp-testing/LICENSE.txt +202 -0
- package/skills/webapp-testing/SKILL.md +97 -0
- package/skills/webapp-testing/examples/console_logging.py +35 -0
- package/skills/webapp-testing/examples/element_discovery.py +40 -0
- package/skills/webapp-testing/examples/static_html_automation.py +33 -0
- package/skills/webapp-testing/scripts/with_server.py +106 -0
- package/skills/writing-plans/SKILL.md +144 -0
- package/skills/xlsx/LICENSE.txt +30 -0
- package/skills/xlsx/SKILL.md +292 -0
- package/skills/xlsx/recalc.py +178 -0
- package/templates/CLAUDE.md.android +57 -0
- package/templates/CLAUDE.md.devops +50 -0
- package/templates/CLAUDE.md.generic +34 -0
- package/templates/CLAUDE.md.go +67 -0
- package/templates/CLAUDE.md.harmony +54 -0
- package/templates/CLAUDE.md.java +56 -0
- package/templates/CLAUDE.md.mobile-flutter +38 -0
- package/templates/CLAUDE.md.mobile-react-native +37 -0
- package/templates/CLAUDE.md.mobile-swift +40 -0
- package/templates/CLAUDE.md.python +65 -0
- package/templates/CLAUDE.md.rust +68 -0
- package/templates/CLAUDE.md.rust-tauri +120 -0
- package/templates/CLAUDE.md.web +63 -0
- package/templates/COMPONENT.md.android +58 -0
- package/templates/COMPONENT.md.devops +54 -0
- package/templates/COMPONENT.md.generic +35 -0
- package/templates/COMPONENT.md.go +59 -0
- package/templates/COMPONENT.md.harmony +63 -0
- package/templates/COMPONENT.md.java +69 -0
- package/templates/COMPONENT.md.mobile-flutter +56 -0
- package/templates/COMPONENT.md.mobile-react-native +55 -0
- package/templates/COMPONENT.md.mobile-swift +56 -0
- package/templates/COMPONENT.md.python +67 -0
- package/templates/COMPONENT.md.rust +57 -0
- package/templates/COMPONENT.md.rust-tauri +66 -0
- package/templates/COMPONENT.md.web +39 -0
- package/templates/README.md.android +71 -0
- package/templates/README.md.devops +68 -0
- package/templates/README.md.generic +39 -0
- package/templates/README.md.go +70 -0
- package/templates/README.md.harmony +72 -0
- package/templates/README.md.java +73 -0
- package/templates/README.md.mobile-flutter +69 -0
- package/templates/README.md.mobile-react-native +65 -0
- package/templates/README.md.mobile-swift +69 -0
- package/templates/README.md.monorepo +59 -0
- package/templates/README.md.python +66 -0
- package/templates/README.md.rust +69 -0
- package/templates/README.md.rust-tauri +149 -0
- package/templates/README.md.web +94 -0
- package/templates/UI_STYLE.md.android +74 -0
- package/templates/UI_STYLE.md.devops +50 -0
- package/templates/UI_STYLE.md.generic +31 -0
- package/templates/UI_STYLE.md.go +49 -0
- package/templates/UI_STYLE.md.harmony +71 -0
- package/templates/UI_STYLE.md.java +61 -0
- package/templates/UI_STYLE.md.mobile-flutter +70 -0
- package/templates/UI_STYLE.md.mobile-react-native +71 -0
- package/templates/UI_STYLE.md.mobile-swift +71 -0
- package/templates/UI_STYLE.md.python +58 -0
- package/templates/UI_STYLE.md.rust +52 -0
- package/templates/UI_STYLE.md.rust-tauri +102 -0
- package/templates/UI_STYLE.md.web +92 -0
- package/templates/cursor-rules.android.mdc +33 -0
- package/templates/cursor-rules.devops.mdc +32 -0
- package/templates/cursor-rules.generic.mdc +25 -0
- package/templates/cursor-rules.go.mdc +34 -0
- package/templates/cursor-rules.harmony.mdc +30 -0
- package/templates/cursor-rules.java.mdc +30 -0
- package/templates/cursor-rules.mobile-flutter.mdc +42 -0
- package/templates/cursor-rules.mobile-react-native.mdc +43 -0
- package/templates/cursor-rules.mobile-swift.mdc +42 -0
- package/templates/cursor-rules.python.mdc +33 -0
- package/templates/cursor-rules.rust-tauri.mdc +67 -0
- package/templates/cursor-rules.rust.mdc +30 -0
- package/templates/cursor-rules.web.mdc +30 -0
- package/templates/kiro-steering.android.md +39 -0
- package/templates/kiro-steering.devops.md +32 -0
- package/templates/kiro-steering.generic.md +28 -0
- package/templates/kiro-steering.go.md +41 -0
- package/templates/kiro-steering.harmony.md +36 -0
- package/templates/kiro-steering.java.md +37 -0
- package/templates/kiro-steering.mobile-flutter.md +73 -0
- package/templates/kiro-steering.mobile-react-native.md +71 -0
- package/templates/kiro-steering.mobile-swift.md +62 -0
- package/templates/kiro-steering.python.md +34 -0
- package/templates/kiro-steering.rust-tauri.md +50 -0
- package/templates/kiro-steering.rust.md +36 -0
- package/templates/kiro-steering.web.md +41 -0
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# Query Templates — jq Graph Query Patterns for project-query
|
|
2
|
+
|
|
3
|
+
This file provides reusable jq query templates for the 6 query categories.
|
|
4
|
+
All templates operate on `knowledge-graph.json` format.
|
|
5
|
+
|
|
6
|
+
## Graph Schema Reference
|
|
7
|
+
|
|
8
|
+
```json
|
|
9
|
+
{
|
|
10
|
+
"nodes": [{ "id": "prefix:name", "type": "...", "label": "...", "path": "...", "importance": 0.0-1.0, "metrics": {...} }],
|
|
11
|
+
"edges": [{ "source": "...", "target": "...", "type": "...", "weight": 0.0-1.0, "confidence": 0.0-1.0, "line": N }],
|
|
12
|
+
"layers": { "detected": [...], "assignments": {...} },
|
|
13
|
+
"indexes": { "nodes_by_type": {...}, "edges_by_source": {...}, "edges_by_target": {...} }
|
|
14
|
+
}
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Template 1: Node Lookup
|
|
18
|
+
|
|
19
|
+
```jq
|
|
20
|
+
# Find nodes by type and label substring
|
|
21
|
+
.nodes | map(select(
|
|
22
|
+
(.type == $type or $type == "*") and
|
|
23
|
+
((.label | ascii_downcase) | contains($query | ascii_downcase))
|
|
24
|
+
)) | sort_by(-.importance) | .[0:20]
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Template 2: BFS Path Finding
|
|
28
|
+
|
|
29
|
+
```jq
|
|
30
|
+
# BFS from source to target on specific edge types
|
|
31
|
+
# Returns shortest path as array of node IDs
|
|
32
|
+
.edges | map(select(.type as $t | $edge_types | index($t))) as $relevant |
|
|
33
|
+
# Iterative BFS (requires multiple jq passes or recursive approach)
|
|
34
|
+
# Simplified: 3-hop path search
|
|
35
|
+
.nodes | map(.id) as $all_ids |
|
|
36
|
+
# Hop 1: direct edges
|
|
37
|
+
($relevant | map(select(.source == $source)) | map(.target)) as $hop1 |
|
|
38
|
+
# Hop 2: from hop1 targets
|
|
39
|
+
($relevant | map(select(.source as $s | $hop1 | index($s))) | map(.target)) as $hop2 |
|
|
40
|
+
# Hop 3: from hop2 targets
|
|
41
|
+
($relevant | map(select(.source as $s | $hop2 | index($s))) | map(.target)) as $hop3 |
|
|
42
|
+
# Check if target reached
|
|
43
|
+
if ($hop1 | index($target)) then [$source, $target]
|
|
44
|
+
elif ($hop2 | index($target)) then
|
|
45
|
+
($relevant | map(select(.target == $target and (.source as $s | $hop1 | index($s)))) | .[0].source) as $mid1 |
|
|
46
|
+
[$source, $mid1, $target]
|
|
47
|
+
elif ($hop3 | index($target)) then
|
|
48
|
+
($relevant | map(select(.target == $target and (.source as $s | $hop2 | index($s)))) | .[0].source) as $mid2 |
|
|
49
|
+
($relevant | map(select(.target == $mid2 and (.source as $s | $hop1 | index($s)))) | .[0].source) as $mid1 |
|
|
50
|
+
[$source, $mid1, $mid2, $target]
|
|
51
|
+
else [] end
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Template 3: Impact Analysis (Reverse BFS)
|
|
55
|
+
|
|
56
|
+
```jq
|
|
57
|
+
# Find all nodes that depend on target (reverse 1-hop + 2-hop)
|
|
58
|
+
.edges as $all |
|
|
59
|
+
.nodes as $nodes |
|
|
60
|
+
|
|
61
|
+
# Direct dependents (reverse edges pointing TO target)
|
|
62
|
+
[$all[] | select(.target == $target_id)] as $direct_back |
|
|
63
|
+
|
|
64
|
+
# Direct dependents' node IDs
|
|
65
|
+
[$direct_back[].source] | unique as $direct_ids |
|
|
66
|
+
|
|
67
|
+
# Second-level dependents (reverse edges pointing TO direct dependents)
|
|
68
|
+
[$all[] | select(.target as $t | $direct_ids | index($t))] as $indirect_back |
|
|
69
|
+
[$indirect_back[].source] | unique as $indirect_ids |
|
|
70
|
+
|
|
71
|
+
# Combine and compute risk
|
|
72
|
+
{
|
|
73
|
+
target: $target_id,
|
|
74
|
+
direct_dependents: ($direct_ids | length),
|
|
75
|
+
transitive_dependents: (($indirect_ids | length) - ($direct_ids | length)),
|
|
76
|
+
risk_score: (
|
|
77
|
+
($direct_ids | map($nodes | map(select(.id == .)) | .[0].importance // 0) | add // 0) * 0.6 +
|
|
78
|
+
($indirect_ids | map($nodes | map(select(.id == .)) | .[0].importance // 0) | add // 0) * 0.4
|
|
79
|
+
),
|
|
80
|
+
affected_nodes: ($direct_ids + $indirect_ids) | unique
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Template 4: Data Lineage
|
|
85
|
+
|
|
86
|
+
```jq
|
|
87
|
+
# Forward: trace where data flows FROM entity
|
|
88
|
+
# Backward: trace where data comes TO entity
|
|
89
|
+
|
|
90
|
+
# Data-relevant edge types
|
|
91
|
+
["reads_from", "writes_to", "transforms", "validates", "persists_to", "reads_state", "writes_state"] as $data_edges |
|
|
92
|
+
|
|
93
|
+
.edges | map(select(.type as $t | $data_edges | index($t))) as $relevant |
|
|
94
|
+
|
|
95
|
+
# Sources (who writes to this entity)
|
|
96
|
+
[$relevant[] | select(.target == $data_id and (.type == "writes_to" or .type == "writes_state"))] as $writers |
|
|
97
|
+
|
|
98
|
+
# Sinks (who reads from this entity)
|
|
99
|
+
[$relevant[] | select(.source == $data_id and (.type == "reads_from" or .type == "reads_state"))] as $readers |
|
|
100
|
+
|
|
101
|
+
# Transforms (who transforms this entity)
|
|
102
|
+
[$relevant[] | select((.source == $data_id or .target == $data_id) and .type == "transforms")] as $transformers |
|
|
103
|
+
|
|
104
|
+
{
|
|
105
|
+
data_entity: $data_id,
|
|
106
|
+
sources: { writers: ($writers | map(.source) | unique), count: ($writers | length) },
|
|
107
|
+
sinks: { readers: ($readers | map(.target) | unique), count: ($readers | length) },
|
|
108
|
+
transforms: ($transformers | map(.source) | unique),
|
|
109
|
+
flow_rate: (($writers | length) * ($readers | length))
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Template 5: Neighborhood (N-hop BFS)
|
|
114
|
+
|
|
115
|
+
```jq
|
|
116
|
+
# Bidirectional BFS for N hops around focus node
|
|
117
|
+
# Returns subgraph of all nodes/edges within N hops
|
|
118
|
+
|
|
119
|
+
.edges as $all |
|
|
120
|
+
.nodes as $all_nodes |
|
|
121
|
+
|
|
122
|
+
# Build adjacency (both directions)
|
|
123
|
+
([$all[] | {from: .source, to: .target}] + [$all[] | {from: .target, to: .source}]) as $bidir |
|
|
124
|
+
|
|
125
|
+
# Iterative expansion (for up to 3 hops)
|
|
126
|
+
[$focus_id] as $hop0 |
|
|
127
|
+
([$bidir[] | select(.from == $focus_id) | .to] | unique) as $hop1 |
|
|
128
|
+
([$bidir[] | select(.from as $f | $hop1 | index($f)) | .to] | unique | map(select(. != $focus_id) | select(. as $h | $hop1 | index($h) | not))) as $hop2 |
|
|
129
|
+
([$bidir[] | select(.from as $f | $hop2 | index($f)) | .to] | unique | map(select(. != $focus_id) | select(. as $h | $hop1 | index($h) | not) | select(. as $h | $hop2 | index($h) | not))) as $hop3 |
|
|
130
|
+
|
|
131
|
+
# Collect all reachable nodes
|
|
132
|
+
($hop0 + $hop1 + $hop2 + $hop3) | unique as $reachable |
|
|
133
|
+
|
|
134
|
+
# Filter to zoom level
|
|
135
|
+
$reachable as $ids |
|
|
136
|
+
{
|
|
137
|
+
nodes: [$all_nodes[] | select(.id as $id | $ids | index($id))],
|
|
138
|
+
edges: [$all[] | select((.source as $s | $ids | index($s)) and (.target as $t | $ids | index($t)))]
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Template 6: Aggregate Metrics
|
|
143
|
+
|
|
144
|
+
```jq
|
|
145
|
+
# Sort nodes by a specific metric, return top N
|
|
146
|
+
.nodes |
|
|
147
|
+
map(select(.metrics[$metric] != null)) |
|
|
148
|
+
sort_by(-.metrics[$metric]) |
|
|
149
|
+
.[0:$limit] |
|
|
150
|
+
map({
|
|
151
|
+
id: .id,
|
|
152
|
+
label: .label,
|
|
153
|
+
type: .type,
|
|
154
|
+
value: .metrics[$metric]
|
|
155
|
+
})
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## Zoom Level Filters
|
|
159
|
+
|
|
160
|
+
```jq
|
|
161
|
+
# G1: System view
|
|
162
|
+
.nodes | map(select(.type == "module" or .type == "architectural_layer"))
|
|
163
|
+
|
|
164
|
+
# G2: Module view
|
|
165
|
+
.nodes | map(select(.type == "module" or .type == "class" or .type == "service" or .type == "store" or .type == "interface" or .type == "architectural_layer"))
|
|
166
|
+
|
|
167
|
+
# G3: Function view
|
|
168
|
+
.nodes | map(select(.type == "function" or .type == "api_endpoint" or .type == "route" or .type == "hook" or .type == "service"))
|
|
169
|
+
|
|
170
|
+
# G4: Data view
|
|
171
|
+
.nodes | map(select(.type == "function" or .type == "data_entity" or .type == "store"))
|
|
172
|
+
|
|
173
|
+
# G5: All (no filter)
|
|
174
|
+
.nodes
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
## Mermaid Generation Templates
|
|
178
|
+
|
|
179
|
+
### Dependency Graph (G1)
|
|
180
|
+
```
|
|
181
|
+
graph TD
|
|
182
|
+
subgraph presentation
|
|
183
|
+
mod:controller --> mod:auth-service
|
|
184
|
+
end
|
|
185
|
+
subgraph service
|
|
186
|
+
mod:auth-service --> mod:user-repo
|
|
187
|
+
end
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Call Chain (G3)
|
|
191
|
+
```
|
|
192
|
+
graph LR
|
|
193
|
+
func:A.createUser -->|calls| func:B.validate
|
|
194
|
+
func:B.validate -->|calls_async| func:C.checkDB
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Data Flow (G4)
|
|
198
|
+
```
|
|
199
|
+
graph TD
|
|
200
|
+
api:POST/users -->|writes_to| data:User
|
|
201
|
+
data:User -->|reads_from| func:getProfile
|
|
202
|
+
func:getProfile -->|transforms| data:UserDTO
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Impact Analysis
|
|
206
|
+
```
|
|
207
|
+
graph TD
|
|
208
|
+
data:User((User)) -->|risk:HIGH| svc:Auth
|
|
209
|
+
data:User -->|risk:MEDIUM| svc:Order
|
|
210
|
+
style data:User fill:#ff5555
|
|
211
|
+
style svc:Auth fill:#ffb86c
|
|
212
|
+
```
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: python-conventions
|
|
3
|
+
description: Python/FastAPI/Django development conventions and best practices
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Python Conventions
|
|
8
|
+
|
|
9
|
+
Use this skill when working on Python projects (Django, FastAPI, Flask, CLI tools).
|
|
10
|
+
|
|
11
|
+
## When to Use
|
|
12
|
+
- Detected Python project (requirements.txt, pyproject.toml, setup.py)
|
|
13
|
+
- User asks about Python best practices
|
|
14
|
+
- Writing or reviewing Python code
|
|
15
|
+
|
|
16
|
+
## Code Style
|
|
17
|
+
|
|
18
|
+
### PEP 8
|
|
19
|
+
- 4-space indentation
|
|
20
|
+
- Max line length: 88 (Black) or 120 (per project config)
|
|
21
|
+
- Imports: stdlib, third-party, local (separated by blank lines)
|
|
22
|
+
- Use `isort` or `ruff` for import sorting
|
|
23
|
+
- Use f-strings for string formatting
|
|
24
|
+
|
|
25
|
+
### Type Hints
|
|
26
|
+
- Annotate all function signatures
|
|
27
|
+
- Use `from __future__ import annotations` for forward references
|
|
28
|
+
- Use `Optional[X]` or `X | None` for optional types
|
|
29
|
+
- Use `TypedDict` for dictionary shapes
|
|
30
|
+
- Use `Protocol` for structural subtyping
|
|
31
|
+
|
|
32
|
+
### Naming
|
|
33
|
+
- Functions/variables/methods: `snake_case`
|
|
34
|
+
- Classes: `PascalCase`
|
|
35
|
+
- Constants: `UPPER_SNAKE_CASE`
|
|
36
|
+
- Private: `_leading_underscore`
|
|
37
|
+
- Dunder methods: `__dunder__`
|
|
38
|
+
|
|
39
|
+
## Project Structure
|
|
40
|
+
|
|
41
|
+
### Recommended Layout
|
|
42
|
+
```
|
|
43
|
+
myapp/
|
|
44
|
+
├── pyproject.toml
|
|
45
|
+
├── src/
|
|
46
|
+
│ └── myapp/
|
|
47
|
+
│ ├── __init__.py
|
|
48
|
+
│ ├── main.py
|
|
49
|
+
│ ├── models/
|
|
50
|
+
│ ├── services/
|
|
51
|
+
│ ├── api/
|
|
52
|
+
│ └── core/
|
|
53
|
+
│ │ ├── config.py
|
|
54
|
+
│ │ └── exceptions.py
|
|
55
|
+
├── tests/
|
|
56
|
+
│ ├── conftest.py
|
|
57
|
+
│ ├── unit/
|
|
58
|
+
│ └── integration/
|
|
59
|
+
└── docs/
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## FastAPI Conventions
|
|
63
|
+
|
|
64
|
+
### App Structure
|
|
65
|
+
```python
|
|
66
|
+
# main.py
|
|
67
|
+
from fastapi import FastAPI
|
|
68
|
+
from myapp.api.router import api_router
|
|
69
|
+
|
|
70
|
+
app = FastAPI(title="My App", version="0.1.0")
|
|
71
|
+
app.include_router(api_router, prefix="/api/v1")
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Router Pattern
|
|
75
|
+
```python
|
|
76
|
+
# api/router.py
|
|
77
|
+
from fastapi import APIRouter
|
|
78
|
+
|
|
79
|
+
api_router = APIRouter()
|
|
80
|
+
api_router.include_router(users.router, prefix="/users", tags=["users"])
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Dependency Injection
|
|
84
|
+
```python
|
|
85
|
+
from fastapi import Depends
|
|
86
|
+
|
|
87
|
+
async def get_db():
|
|
88
|
+
db = SessionLocal()
|
|
89
|
+
try:
|
|
90
|
+
yield db
|
|
91
|
+
finally:
|
|
92
|
+
db.close()
|
|
93
|
+
|
|
94
|
+
@router.get("/users/{user_id}")
|
|
95
|
+
async def get_user(user_id: int, db: Session = Depends(get_db)):
|
|
96
|
+
return db.query(User).get(user_id)
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Pydantic Models
|
|
100
|
+
```python
|
|
101
|
+
from pydantic import BaseModel, EmailStr
|
|
102
|
+
|
|
103
|
+
class UserCreate(BaseModel):
|
|
104
|
+
email: EmailStr
|
|
105
|
+
name: str
|
|
106
|
+
|
|
107
|
+
class UserResponse(BaseModel):
|
|
108
|
+
id: int
|
|
109
|
+
email: EmailStr
|
|
110
|
+
name: str
|
|
111
|
+
|
|
112
|
+
model_config = ConfigDict(from_attributes=True)
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Django Conventions
|
|
116
|
+
|
|
117
|
+
### App Structure
|
|
118
|
+
- One app per feature domain
|
|
119
|
+
- Use `models.py`, `views.py`, `serializers.py`, `urls.py`
|
|
120
|
+
- Use Django REST Framework for APIs
|
|
121
|
+
- Use `select_related`/`prefetch_related` for query optimization
|
|
122
|
+
|
|
123
|
+
### Models
|
|
124
|
+
```python
|
|
125
|
+
class User(models.Model):
|
|
126
|
+
email = models.EmailField(unique=True)
|
|
127
|
+
name = models.CharField(max_length=255)
|
|
128
|
+
created_at = models.DateTimeField(auto_now_add=True)
|
|
129
|
+
|
|
130
|
+
class Meta:
|
|
131
|
+
ordering = ["-created_at"]
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Testing
|
|
135
|
+
|
|
136
|
+
### pytest
|
|
137
|
+
```python
|
|
138
|
+
# conftest.py
|
|
139
|
+
import pytest
|
|
140
|
+
from myapp.main import app
|
|
141
|
+
from httpx import AsyncClient
|
|
142
|
+
|
|
143
|
+
@pytest.fixture
|
|
144
|
+
async def client():
|
|
145
|
+
async with AsyncClient(app=app, base_url="http://test") as client:
|
|
146
|
+
yield client
|
|
147
|
+
|
|
148
|
+
# tests/test_users.py
|
|
149
|
+
async def test_create_user(client):
|
|
150
|
+
response = await client.post("/api/v1/users", json={
|
|
151
|
+
"email": "test@example.com",
|
|
152
|
+
"name": "Test User"
|
|
153
|
+
})
|
|
154
|
+
assert response.status_code == 201
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Best Practices
|
|
158
|
+
- Use fixtures for setup/teardown
|
|
159
|
+
- Mock external dependencies with `pytest-mock`
|
|
160
|
+
- Use `faker` for test data generation
|
|
161
|
+
- Separate unit and integration tests
|
|
162
|
+
- Aim for 80%+ coverage
|
|
163
|
+
|
|
164
|
+
## Tools
|
|
165
|
+
- **Linting/Formatting**: `ruff` (replaces flake8, isort, black)
|
|
166
|
+
- **Type checking**: `mypy`
|
|
167
|
+
- **Testing**: `pytest`
|
|
168
|
+
- **Virtual env**: `venv`, `poetry`, `uv`
|
|
169
|
+
- **Dependency management**: `pyproject.toml` with `pip-compile` or `poetry`
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: react-native-conventions
|
|
3
|
+
description: React Native mobile development conventions and best practices
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# React Native Conventions
|
|
8
|
+
|
|
9
|
+
Use this skill when working on React Native applications.
|
|
10
|
+
|
|
11
|
+
## When to Use
|
|
12
|
+
- Detected React Native project (react-native in package.json)
|
|
13
|
+
- User asks about React Native development best practices
|
|
14
|
+
- Writing or reviewing React Native code
|
|
15
|
+
|
|
16
|
+
## Related Skills
|
|
17
|
+
- `swift-conventions` — iOS native module bridging
|
|
18
|
+
- `android-conventions` — Android native module bridging
|
|
19
|
+
- `web-conventions` — React/TypeScript shared conventions
|
|
20
|
+
|
|
21
|
+
## General Principles
|
|
22
|
+
- Follow platform-specific design guidelines (Material Design / Human Interface Guidelines)
|
|
23
|
+
- Responsive layouts that adapt to different screen sizes
|
|
24
|
+
- Handle offline scenarios gracefully
|
|
25
|
+
- Optimize for performance (FlatList virtualization, lazy loading)
|
|
26
|
+
- Proper error handling and user feedback
|
|
27
|
+
|
|
28
|
+
## Code Style
|
|
29
|
+
- TypeScript for all new files
|
|
30
|
+
- Functional components with hooks
|
|
31
|
+
- Use `expo` when possible for faster development
|
|
32
|
+
- Follow React conventions (see web-conventions skill)
|
|
33
|
+
|
|
34
|
+
## Architecture
|
|
35
|
+
- Screen components in `screens/`
|
|
36
|
+
- Reusable components in `components/`
|
|
37
|
+
- Navigation in `navigation/`
|
|
38
|
+
- Services/API in `services/`
|
|
39
|
+
- Hooks in `hooks/`
|
|
40
|
+
- Store in `store/`
|
|
41
|
+
|
|
42
|
+
## Navigation
|
|
43
|
+
- React Navigation for routing
|
|
44
|
+
- Type-safe navigation params
|
|
45
|
+
- Deep linking support
|
|
46
|
+
- Tab and stack navigators
|
|
47
|
+
- Expo Router for file-based routing
|
|
48
|
+
|
|
49
|
+
## State Management
|
|
50
|
+
- Zustand for simple to moderate state
|
|
51
|
+
- Redux Toolkit for complex state
|
|
52
|
+
- React Query / SWR for server state
|
|
53
|
+
- AsyncStorage / MMKV for persistence
|
|
54
|
+
|
|
55
|
+
## API Integration
|
|
56
|
+
- Repository pattern for data access
|
|
57
|
+
- Error handling with proper user feedback
|
|
58
|
+
- Loading states and skeleton screens
|
|
59
|
+
- Offline-first when applicable
|
|
60
|
+
- Axios or fetch with interceptors
|
|
61
|
+
|
|
62
|
+
## Testing
|
|
63
|
+
- Jest + React Native Testing Library
|
|
64
|
+
- Detox for E2E tests
|
|
65
|
+
- Mock native modules
|
|
66
|
+
- Storybook for component development
|
|
67
|
+
|
|
68
|
+
## Performance
|
|
69
|
+
- Use FlatList instead of ScrollView for long lists
|
|
70
|
+
- Image optimization and caching (FastImage)
|
|
71
|
+
- Lazy loading for heavy components
|
|
72
|
+
- Reduce re-renders with React.memo and useMemo
|
|
73
|
+
- Hermes engine for JavaScript optimization
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# Requirements Writer Skill
|
|
2
|
+
|
|
3
|
+
## Quick Start
|
|
4
|
+
|
|
5
|
+
This skill helps you write comprehensive PRDs and User Stories following Inspection Agent project standards.
|
|
6
|
+
|
|
7
|
+
### Basic Workflow
|
|
8
|
+
|
|
9
|
+
1. **Phase 1: Requirements Outline**
|
|
10
|
+
- Use `templates/prd-outline-template.md`
|
|
11
|
+
- Define modules, dependencies, and writing plan
|
|
12
|
+
|
|
13
|
+
2. **Phase 2: Module-Level PRDs**
|
|
14
|
+
- Use `templates/module-prd-template.md`
|
|
15
|
+
- Write detailed requirements for each module
|
|
16
|
+
|
|
17
|
+
3. **Phase 3: User Stories**
|
|
18
|
+
- Use `templates/user-story-template.md`
|
|
19
|
+
- Write comprehensive US (8000+ words each)
|
|
20
|
+
|
|
21
|
+
## Validation Checklist
|
|
22
|
+
|
|
23
|
+
### Phase 1: Requirements Outline
|
|
24
|
+
|
|
25
|
+
**File Naming**
|
|
26
|
+
- [ ] File follows: `30x-prd-outline.md`
|
|
27
|
+
- [ ] Located in: `docs/300-requirements/`
|
|
28
|
+
- [ ] Lowercase, kebab-case filename
|
|
29
|
+
|
|
30
|
+
**Document Structure**
|
|
31
|
+
- [ ] Complete frontmatter (doc_id, title, status, owner, last_updated, related_docs)
|
|
32
|
+
- [ ] All sections from template are present
|
|
33
|
+
- [ ] Version history table at end
|
|
34
|
+
|
|
35
|
+
**Content Quality**
|
|
36
|
+
- [ ] All modules identified
|
|
37
|
+
- [ ] Module dependencies mapped
|
|
38
|
+
- [ ] Writing sequence defined
|
|
39
|
+
- [ ] Personas defined
|
|
40
|
+
- [ ] Deliverables listed
|
|
41
|
+
|
|
42
|
+
### Phase 2: Module PRD
|
|
43
|
+
|
|
44
|
+
**File Naming**
|
|
45
|
+
- [ ] File follows: `31x-prd-<module>.md`
|
|
46
|
+
- [ ] Located in: `docs/300-requirements/`
|
|
47
|
+
- [ ] Lowercase, kebab-case filename
|
|
48
|
+
|
|
49
|
+
**Document Structure**
|
|
50
|
+
- [ ] Complete frontmatter
|
|
51
|
+
- [ ] Problem/Goals section
|
|
52
|
+
- [ ] Scope (In/Out) defined
|
|
53
|
+
- [ ] Personas & Scenarios
|
|
54
|
+
- [ ] Functional Requirements (FR-<MODULE>-<SEQ>)
|
|
55
|
+
- [ ] Non-Functional Requirements (NFR-<MODULE>-<SEQ>)
|
|
56
|
+
- [ ] UX Notes (interaction intent only)
|
|
57
|
+
- [ ] Data Requirements
|
|
58
|
+
- [ ] Acceptance Criteria
|
|
59
|
+
- [ ] Risks & Assumptions
|
|
60
|
+
- [ ] Version history
|
|
61
|
+
|
|
62
|
+
**Content Quality**
|
|
63
|
+
- [ ] FRs include: Input, Processing, Output, Exceptions, Verification
|
|
64
|
+
- [ ] NFRs are quantifiable and testable
|
|
65
|
+
- [ ] ACs avoid subjective language
|
|
66
|
+
- [ ] Cross-references use relative paths
|
|
67
|
+
- [ ] Technical details delegated to design/architecture docs
|
|
68
|
+
|
|
69
|
+
### Phase 3: User Story
|
|
70
|
+
|
|
71
|
+
**File Naming**
|
|
72
|
+
- [ ] File follows: `33x-us-<module>-<feature>.md`
|
|
73
|
+
- [ ] Located in: `docs/300-requirements/330-user-stories/`
|
|
74
|
+
- [ ] Lowercase, kebab-case filename
|
|
75
|
+
|
|
76
|
+
**Document Structure**
|
|
77
|
+
- [ ] Complete frontmatter including us_id, module, priority
|
|
78
|
+
- [ ] Story statement follows format
|
|
79
|
+
- [ ] All 10 sections present
|
|
80
|
+
|
|
81
|
+
**Content Quality (Word Count Targets)**
|
|
82
|
+
- [ ] Section 1 (Background): 1000-1500 words
|
|
83
|
+
- [ ] Section 2 (Personas): 1000-1500 words
|
|
84
|
+
- [ ] Section 3 (Functional): 1500-2000 words
|
|
85
|
+
- [ ] Section 4 (UX): 1000-1500 words
|
|
86
|
+
- [ ] Section 5 (Data): 800-1000 words
|
|
87
|
+
- [ ] Section 6 (Security): 800-1000 words
|
|
88
|
+
- [ ] Section 7 (AC): 1000-1500 words
|
|
89
|
+
- [ ] Section 8 (Dependencies): 500-800 words
|
|
90
|
+
- [ ] Section 9 (Risks): 500-800 words
|
|
91
|
+
- [ ] Section 10 (Out of Scope): 300-500 words
|
|
92
|
+
- [ ] **Total: ≥ 8000 words**
|
|
93
|
+
|
|
94
|
+
**Acceptance Criteria**
|
|
95
|
+
- [ ] All ACs are objectively verifiable
|
|
96
|
+
- [ ] No subjective language (e.g., "fast", "good experience")
|
|
97
|
+
- [ ] Each AC has verification method
|
|
98
|
+
- [ ] Test scenarios included
|
|
99
|
+
|
|
100
|
+
**Data & Security**
|
|
101
|
+
- [ ] Data entities reference `docs/500-data/502-data-dictionary.md`
|
|
102
|
+
- [ ] RBAC requirements defined
|
|
103
|
+
- [ ] Data scope defined per role
|
|
104
|
+
- [ ] Audit requirements for critical operations
|
|
105
|
+
|
|
106
|
+
## Common Mistakes
|
|
107
|
+
|
|
108
|
+
### PRD Writing
|
|
109
|
+
- ❌ Mixing business and technical requirements
|
|
110
|
+
- ❌ Vague, non-testable requirements
|
|
111
|
+
- ❌ Missing NFRs
|
|
112
|
+
- ❌ Subjective acceptance criteria
|
|
113
|
+
- ❌ No scope boundaries
|
|
114
|
+
|
|
115
|
+
### User Story Writing
|
|
116
|
+
- ❌ Insufficient detail (< 8000 words)
|
|
117
|
+
- ❌ Missing required sections
|
|
118
|
+
- ❌ Vague acceptance criteria
|
|
119
|
+
- ❌ No data references
|
|
120
|
+
- ❌ Missing security/audit requirements
|
|
121
|
+
- ❌ Incomplete edge case coverage
|
|
122
|
+
|
|
123
|
+
## Integration with Doc-Standards-Enforcer
|
|
124
|
+
|
|
125
|
+
This skill automatically invokes `doc-standards-enforcer` to ensure:
|
|
126
|
+
- Proper file naming
|
|
127
|
+
- Complete frontmatter
|
|
128
|
+
- Correct directory structure
|
|
129
|
+
- Valid status values
|
|
130
|
+
- Version history tables
|
|
131
|
+
- Proper cross-references
|
|
132
|
+
|
|
133
|
+
## Example Usage
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
User: "I need to write a PRD for the COMPARE module"
|
|
137
|
+
|
|
138
|
+
Assistant: "Let's start with the requirements outline.
|
|
139
|
+
1. First, tell me about the project scope and main modules.
|
|
140
|
+
2. I'll create docs/300-requirements/301-prd-outline.md
|
|
141
|
+
3. Then we'll write module PRDs in dependency order
|
|
142
|
+
4. Finally, we'll write comprehensive User Stories"
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Templates Location
|
|
146
|
+
|
|
147
|
+
- **PRD Outline**: `templates/prd-outline-template.md`
|
|
148
|
+
- **Module PRD**: `templates/module-prd-template.md`
|
|
149
|
+
- **User Story**: `templates/user-story-template.md`
|
|
150
|
+
|
|
151
|
+
## Related Skills
|
|
152
|
+
|
|
153
|
+
- `doc-standards-enforcer` - Document standards compliance (automatically invoked)
|