@ngockhoale/ukit 1.1.6
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/CHANGELOG.md +179 -0
- package/LICENSE +21 -0
- package/README.md +189 -0
- package/bin/ukit +30 -0
- package/manifests/platform.full.yaml +1194 -0
- package/package.json +71 -0
- package/scripts/bug/triage.mjs +37 -0
- package/scripts/index/build-index.mjs +35 -0
- package/scripts/index/query-index.mjs +92 -0
- package/scripts/index/refresh-index.mjs +85 -0
- package/scripts/release/verify-release.mjs +56 -0
- package/src/bug/triageBug.js +123 -0
- package/src/cli/adapters.js +148 -0
- package/src/cli/commands/diff.js +51 -0
- package/src/cli/commands/doctor.js +125 -0
- package/src/cli/commands/indexArgs.js +73 -0
- package/src/cli/commands/indexTools.js +509 -0
- package/src/cli/commands/install.js +293 -0
- package/src/cli/commands/memory.js +126 -0
- package/src/cli/commands/status.js +8 -0
- package/src/cli/commands/uninstall.js +51 -0
- package/src/cli/index.js +109 -0
- package/src/context/detectProjectContext.js +49 -0
- package/src/context/detectProviders.js +12 -0
- package/src/core/applyPlan.js +89 -0
- package/src/core/buildPlan.js +228 -0
- package/src/core/compact/index.js +294 -0
- package/src/core/compact/threshold.js +936 -0
- package/src/core/diffPlan.js +73 -0
- package/src/core/ensureGitignore.js +117 -0
- package/src/core/fileOps.js +188 -0
- package/src/core/memory/hygiene.js +160 -0
- package/src/core/memory/index.js +2 -0
- package/src/core/memory/retrieval.js +476 -0
- package/src/core/memory/store.js +202 -0
- package/src/core/metadata.js +132 -0
- package/src/core/migrateLegacy.js +139 -0
- package/src/core/output/index.js +1309 -0
- package/src/core/paths.js +13 -0
- package/src/core/report.js +17 -0
- package/src/core/router/advisor.js +42 -0
- package/src/core/router/index.js +2 -0
- package/src/core/router/router.js +164 -0
- package/src/core/runInstallPipeline.js +365 -0
- package/src/core/runtimeConfig.js +190 -0
- package/src/core/runtimePaths.js +24 -0
- package/src/core/status.js +186 -0
- package/src/core/token/index.js +328 -0
- package/src/core/uninstall.js +246 -0
- package/src/core/validation/confidence.js +89 -0
- package/src/core/validation/index.js +2 -0
- package/src/core/validation/validator.js +165 -0
- package/src/index/buildIndex.js +1392 -0
- package/src/index/gitHooks.js +109 -0
- package/src/index/importResolution.js +377 -0
- package/src/index/languageTools.js +127 -0
- package/src/index/paths.js +27 -0
- package/src/index/queryIndex.js +637 -0
- package/src/index/relatedTests.js +237 -0
- package/src/index/resolveContext.js +345 -0
- package/src/index/routeCatalog.js +258 -0
- package/src/index/taskRouting.js +677 -0
- package/src/index/verificationPlan.js +437 -0
- package/src/manifest/loadManifest.js +22 -0
- package/src/manifest/selectItems.js +78 -0
- package/src/manifest/validateManifest.js +115 -0
- package/src/render/buildVariables.js +39 -0
- package/src/render/renderTemplate.js +44 -0
- package/src/stack/detectStack.js +213 -0
- package/templates/.claude/agents/bug-debugger.md +57 -0
- package/templates/.claude/agents/feature-implementer.md +55 -0
- package/templates/.claude/config/providers.md +25 -0
- package/templates/.claude/hooks/auto-allow-bash.sh +155 -0
- package/templates/.claude/hooks/auto-prune-bash.sh +75 -0
- package/templates/.claude/hooks/block-dangerous.sh +54 -0
- package/templates/.claude/hooks/compress-output.sh +17 -0
- package/templates/.claude/hooks/protect-files.sh +37 -0
- package/templates/.claude/hooks/reinject-context.sh +28 -0
- package/templates/.claude/hooks/session-start.md +13 -0
- package/templates/.claude/hooks/skill-router.sh +1681 -0
- package/templates/.claude/hooks/verification-guard.sh +271 -0
- package/templates/.claude/settings.json +144 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/mce/mc.xsd +75 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/templates/.claude/skills/_shared/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/templates/.claude/skills/_shared/ooxml/scripts/pack.py +159 -0
- package/templates/.claude/skills/_shared/ooxml/scripts/unpack.py +29 -0
- package/templates/.claude/skills/_shared/ooxml/scripts/validate.py +69 -0
- package/templates/.claude/skills/_shared/ooxml/scripts/validation/__init__.py +15 -0
- package/templates/.claude/skills/_shared/ooxml/scripts/validation/base.py +951 -0
- package/templates/.claude/skills/_shared/ooxml/scripts/validation/docx.py +274 -0
- package/templates/.claude/skills/_shared/ooxml/scripts/validation/pptx.py +315 -0
- package/templates/.claude/skills/_shared/ooxml/scripts/validation/redlining.py +279 -0
- package/templates/.claude/skills/backend-api/SKILL.md +26 -0
- package/templates/.claude/skills/canvas-design/LICENSE.txt +202 -0
- package/templates/.claude/skills/canvas-design/SKILL.md +130 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/templates/.claude/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/templates/.claude/skills/code-review/SKILL.md +97 -0
- package/templates/.claude/skills/debugging-toolkit/SKILL.md +156 -0
- package/templates/.claude/skills/delivery/SKILL.md +92 -0
- package/templates/.claude/skills/discover-security/SKILL.md +86 -0
- package/templates/.claude/skills/docker-packaging/SKILL.md +60 -0
- package/templates/.claude/skills/docs-manager/SKILL.md +465 -0
- package/templates/.claude/skills/docs-manager/init-project-docs.sh +70 -0
- package/templates/.claude/skills/docs-manager/templates/README.md.template +50 -0
- package/templates/.claude/skills/docs-manager/templates/agent-roles.md.template +24 -0
- package/templates/.claude/skills/docs-manager/templates/coding-conventions.md.template +28 -0
- package/templates/.claude/skills/docs-manager/templates/memory.md.template +30 -0
- package/templates/.claude/skills/docs-manager/templates/onboarding.md.template +20 -0
- package/templates/.claude/skills/docs-manager/templates/project.md.template +26 -0
- package/templates/.claude/skills/docs-quality/SKILL.md +148 -0
- package/templates/.claude/skills/docx/LICENSE.txt +30 -0
- package/templates/.claude/skills/docx/SKILL.md +197 -0
- package/templates/.claude/skills/docx/docx-js.md +350 -0
- package/templates/.claude/skills/docx/ooxml.md +610 -0
- package/templates/.claude/skills/docx/scripts/__init__.py +1 -0
- package/templates/.claude/skills/docx/scripts/document.py +1276 -0
- package/templates/.claude/skills/docx/scripts/templates/comments.xml +3 -0
- package/templates/.claude/skills/docx/scripts/templates/commentsExtended.xml +3 -0
- package/templates/.claude/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/templates/.claude/skills/docx/scripts/templates/commentsIds.xml +3 -0
- package/templates/.claude/skills/docx/scripts/templates/people.xml +3 -0
- package/templates/.claude/skills/docx/scripts/utilities.py +374 -0
- package/templates/.claude/skills/duraone/SKILL.md +204 -0
- package/templates/.claude/skills/duraone/references/backend.md +636 -0
- package/templates/.claude/skills/duraone/references/frontend.md +1506 -0
- package/templates/.claude/skills/duraone/references/sql.md +631 -0
- package/templates/.claude/skills/duraone/references/workflow.md +520 -0
- package/templates/.claude/skills/executing-plans/SKILL.md +76 -0
- package/templates/.claude/skills/file-organizer/SKILL.md +433 -0
- package/templates/.claude/skills/frontend/SKILL.md +26 -0
- package/templates/.claude/skills/frontend-design/LICENSE.txt +177 -0
- package/templates/.claude/skills/frontend-design/SKILL.md +42 -0
- package/templates/.claude/skills/frontend-vue/SKILL.md +127 -0
- package/templates/.claude/skills/frontend-vue/components/Control/Box.vue +137 -0
- package/templates/.claude/skills/frontend-vue/components/Control/Button.vue +93 -0
- package/templates/.claude/skills/frontend-vue/components/Control/ButtonBar.vue +29 -0
- package/templates/.claude/skills/frontend-vue/components/Control/ButtonFloat.vue +62 -0
- package/templates/.claude/skills/frontend-vue/components/Control/CheckButton.vue +75 -0
- package/templates/.claude/skills/frontend-vue/components/Control/Checkbox.vue +58 -0
- package/templates/.claude/skills/frontend-vue/components/Control/Datetime.vue +148 -0
- package/templates/.claude/skills/frontend-vue/components/Control/Dropdownlist.vue +156 -0
- package/templates/.claude/skills/frontend-vue/components/Control/Input.vue +106 -0
- package/templates/.claude/skills/frontend-vue/components/Control/Label.vue +38 -0
- package/templates/.claude/skills/frontend-vue/components/Control/Master/BoxColumn.vue +24 -0
- package/templates/.claude/skills/frontend-vue/components/Control/Popup/Confirm.vue +33 -0
- package/templates/.claude/skills/frontend-vue/components/Control/Popup/Info.vue +32 -0
- package/templates/.claude/skills/frontend-vue/components/Control/Popup/ModalInfo.vue +39 -0
- package/templates/.claude/skills/frontend-vue/components/Control/Popup/Reject.vue +64 -0
- package/templates/.claude/skills/frontend-vue/components/Control/Tag.vue +82 -0
- package/templates/.claude/skills/frontend-vue/components/Control/Upload.vue +61 -0
- package/templates/.claude/skills/frontend-vue/components/ControlMobile/Dropdownlist.vue +103 -0
- package/templates/.claude/skills/frontend-vue/components/ControlMobile/PagingBar.vue +108 -0
- package/templates/.claude/skills/frontend-vue/components/ControlMobile/UploadImage.vue +137 -0
- package/templates/.claude/skills/frontend-vue/components/Grid/AG.vue +806 -0
- package/templates/.claude/skills/frontend-vue/components/Grid/AntTable.vue +253 -0
- package/templates/.claude/skills/frontend-vue/components/Grid/CustomDropdownEditor.vue +43 -0
- package/templates/.claude/skills/frontend-vue/components/Grid/CustomDropdownEditorEnable.vue +55 -0
- package/templates/.claude/skills/frontend-vue/components/Grid/HtmlTable.vue +40 -0
- package/templates/.claude/skills/frontend-vue/components/PDFViewer.vue +25 -0
- package/templates/.claude/skills/frontend-vue/components/Panel/FormView.vue +309 -0
- package/templates/.claude/skills/frontend-vue/components/Partial/Footer.vue +23 -0
- package/templates/.claude/skills/frontend-vue/components/Partial/Header.vue +265 -0
- package/templates/.claude/skills/frontend-vue/components/Partial/Sidebar.vue +122 -0
- package/templates/.claude/skills/frontend-vue/components/Template.vue +16 -0
- package/templates/.claude/skills/frontend-vue/components/View/Form.vue +89 -0
- package/templates/.claude/skills/frontend-vue/composables/indexDBStore.js +140 -0
- package/templates/.claude/skills/frontend-vue/composables/masterApi.js +362 -0
- package/templates/.claude/skills/frontend-vue/composables/state.js +578 -0
- package/templates/.claude/skills/frontend-vue/composables/useRequest.js +221 -0
- package/templates/.claude/skills/frontend-vue/composables/useSession.js +179 -0
- package/templates/.claude/skills/frontend-vue/composables/useTranslation.js +54 -0
- package/templates/.claude/skills/frontend-vue/composables/useWebSocket.js +257 -0
- package/templates/.claude/skills/frontend-vue/composables/userObj.js +111 -0
- package/templates/.claude/skills/frontend-vue/composables/utils.js +322 -0
- package/templates/.claude/skills/frontend-vue/reference/composables-example.vue +320 -0
- package/templates/.claude/skills/frontend-vue/reference/form-example.vue +183 -0
- package/templates/.claude/skills/frontend-vue/reference/grid-example.vue +147 -0
- package/templates/.claude/skills/frontend-vue/reference/masterdata-example/[id].vue +106 -0
- package/templates/.claude/skills/frontend-vue/reference/masterdata-example/index.vue +58 -0
- package/templates/.claude/skills/frontend-vue/reference/popup-example.vue +159 -0
- package/templates/.claude/skills/pdf/LICENSE.txt +30 -0
- package/templates/.claude/skills/pdf/SKILL.md +294 -0
- package/templates/.claude/skills/pdf/forms.md +205 -0
- package/templates/.claude/skills/pdf/reference.md +612 -0
- package/templates/.claude/skills/pdf/scripts/check_bounding_boxes.py +70 -0
- package/templates/.claude/skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
- package/templates/.claude/skills/pdf/scripts/check_fillable_fields.py +12 -0
- package/templates/.claude/skills/pdf/scripts/convert_pdf_to_images.py +35 -0
- package/templates/.claude/skills/pdf/scripts/create_validation_image.py +41 -0
- package/templates/.claude/skills/pdf/scripts/extract_form_field_info.py +152 -0
- package/templates/.claude/skills/pdf/scripts/fill_fillable_fields.py +114 -0
- package/templates/.claude/skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
- package/templates/.claude/skills/pdf-processing/SKILL.md +107 -0
- package/templates/.claude/skills/pdf-processing-pro/FORMS.md +610 -0
- package/templates/.claude/skills/pdf-processing-pro/OCR.md +137 -0
- package/templates/.claude/skills/pdf-processing-pro/SKILL.md +296 -0
- package/templates/.claude/skills/pdf-processing-pro/TABLES.md +626 -0
- package/templates/.claude/skills/pdf-processing-pro/scripts/analyze_form.py +307 -0
- package/templates/.claude/skills/postgres/SKILL.md +69 -0
- package/templates/.claude/skills/postgres/reference/fn_get_examples.sql +208 -0
- package/templates/.claude/skills/postgres/reference/fn_rpt_examples.sql +239 -0
- package/templates/.claude/skills/postgres/reference/utility_functions.sql +94 -0
- package/templates/.claude/skills/pptx/LICENSE.txt +30 -0
- package/templates/.claude/skills/pptx/SKILL.md +484 -0
- package/templates/.claude/skills/pptx/html2pptx.md +625 -0
- package/templates/.claude/skills/pptx/ooxml.md +427 -0
- package/templates/.claude/skills/pptx/scripts/html2pptx.js +979 -0
- package/templates/.claude/skills/pptx/scripts/inventory.py +1020 -0
- package/templates/.claude/skills/pptx/scripts/rearrange.py +231 -0
- package/templates/.claude/skills/pptx/scripts/replace.py +385 -0
- package/templates/.claude/skills/pptx/scripts/thumbnail.py +450 -0
- package/templates/.claude/skills/repo-maintenance/SKILL.md +97 -0
- package/templates/.claude/skills/research/EXAMPLES.md +434 -0
- package/templates/.claude/skills/research/REFERENCE.md +399 -0
- package/templates/.claude/skills/research/SKILL.md +136 -0
- package/templates/.claude/skills/root-cause-tracing/SKILL.md +174 -0
- package/templates/.claude/skills/root-cause-tracing/find-polluter.sh +63 -0
- package/templates/.claude/skills/sharing-skills/SKILL.md +194 -0
- package/templates/.claude/skills/sql-optimization-patterns/SKILL.md +493 -0
- package/templates/.claude/skills/subagent-driven-development/SKILL.md +189 -0
- package/templates/.claude/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/templates/.claude/skills/systematic-debugging/SKILL.md +295 -0
- package/templates/.claude/skills/systematic-debugging/test-academic.md +14 -0
- package/templates/.claude/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/templates/.claude/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/templates/.claude/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/templates/.claude/skills/test-driven-development/SKILL.md +364 -0
- package/templates/.claude/skills/testing-anti-patterns/SKILL.md +302 -0
- package/templates/.claude/skills/testing-quality/SKILL.md +97 -0
- package/templates/.claude/skills/verification-before-completion/SKILL.md +139 -0
- package/templates/.claude/skills/webapp-testing/LICENSE.txt +202 -0
- package/templates/.claude/skills/webapp-testing/SKILL.md +96 -0
- package/templates/.claude/skills/webapp-testing/examples/console_logging.py +35 -0
- package/templates/.claude/skills/webapp-testing/examples/element_discovery.py +40 -0
- package/templates/.claude/skills/webapp-testing/examples/static_html_automation.py +33 -0
- package/templates/.claude/skills/webapp-testing/scripts/with_server.py +106 -0
- package/templates/.claude/ukit/index/build-index.mjs +28 -0
- package/templates/.claude/ukit/index/cache-utils.mjs +140 -0
- package/templates/.claude/ukit/index/lib/index-core.mjs +2800 -0
- package/templates/.claude/ukit/index/query-index.mjs +150 -0
- package/templates/.claude/ukit/index/refresh-index.mjs +57 -0
- package/templates/.claude/ukit/index/reset-auto-permissions.mjs +76 -0
- package/templates/.claude/ukit/index/resolve-context.mjs +279 -0
- package/templates/.claude/ukit/index/route-catalog.mjs +258 -0
- package/templates/.claude/ukit/index/route-task.mjs +1994 -0
- package/templates/.claude/ukit/index/triage.mjs +133 -0
- package/templates/.claude/ukit/index/verify-context.mjs +689 -0
- package/templates/.claude/ukit/runtime/compact-threshold.mjs +1013 -0
- package/templates/.claude/ukit/runtime/output-compression.mjs +1340 -0
- package/templates/.claude/ukit/runtime/reinject-context.mjs +874 -0
- package/templates/.claude/ukit/runtime/token-utils.mjs +500 -0
- package/templates/.codex/README.md +83 -0
- package/templates/.codex/settings.json +187 -0
- package/templates/.gitignore +75 -0
- package/templates/AGENTS.md +116 -0
- package/templates/CLAUDE.md +93 -0
- package/templates/adapter-presets/antigravity/README.md +22 -0
- package/templates/adapter-presets/antigravity/rules.md +49 -0
- package/templates/adapter-presets/claude/settings.local.json +42 -0
- package/templates/adapter-presets/codex/settings.local.json +6 -0
- package/templates/adapter-presets/opencode/opencode.template.json +1 -0
- package/templates/docs/BUGFIX.md +20 -0
- package/templates/docs/BUG_INDEX.md +12 -0
- package/templates/docs/BUG_METRICS.md +7 -0
- package/templates/docs/BUG_TEMPLATE.md +13 -0
- package/templates/docs/CODE_MAP.md +35 -0
- package/templates/docs/INSTALL.md +113 -0
- package/templates/docs/MEMORY.md +49 -0
- package/templates/docs/PROJECT.md +50 -0
- package/templates/docs/UKIT_USAGE_GUIDE.md +147 -0
- package/templates/docs/WORKLOG.md +10 -0
- package/templates/ukit/README.md +14 -0
- package/templates/ukit/storage/cache/compact-history.json +3 -0
- package/templates/ukit/storage/cache/compact-pressure.json +1 -0
- package/templates/ukit/storage/cache/output-history.json +3 -0
- package/templates/ukit/storage/cache/prompt-cache.json +3 -0
- package/templates/ukit/storage/config.json +37 -0
- package/templates/ukit/storage/memory/projects/.gitkeep +2 -0
- package/templates/ukit/storage/memory/sessions/.gitkeep +0 -0
- package/templates/ukit/storage/memory/user.json +5 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
Copyright 2023 The Tektur Project Authors (https://www.github.com/hyvyys/Tektur)
|
|
2
|
+
|
|
3
|
+
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
4
|
+
This license is copied below, and is also available with a FAQ at:
|
|
5
|
+
https://openfontlicense.org
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
-----------------------------------------------------------
|
|
9
|
+
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
|
10
|
+
-----------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
PREAMBLE
|
|
13
|
+
The goals of the Open Font License (OFL) are to stimulate worldwide
|
|
14
|
+
development of collaborative font projects, to support the font creation
|
|
15
|
+
efforts of academic and linguistic communities, and to provide a free and
|
|
16
|
+
open framework in which fonts may be shared and improved in partnership
|
|
17
|
+
with others.
|
|
18
|
+
|
|
19
|
+
The OFL allows the licensed fonts to be used, studied, modified and
|
|
20
|
+
redistributed freely as long as they are not sold by themselves. The
|
|
21
|
+
fonts, including any derivative works, can be bundled, embedded,
|
|
22
|
+
redistributed and/or sold with any software provided that any reserved
|
|
23
|
+
names are not used by derivative works. The fonts and derivatives,
|
|
24
|
+
however, cannot be released under any other type of license. The
|
|
25
|
+
requirement for fonts to remain under this license does not apply
|
|
26
|
+
to any document created using the fonts or their derivatives.
|
|
27
|
+
|
|
28
|
+
DEFINITIONS
|
|
29
|
+
"Font Software" refers to the set of files released by the Copyright
|
|
30
|
+
Holder(s) under this license and clearly marked as such. This may
|
|
31
|
+
include source files, build scripts and documentation.
|
|
32
|
+
|
|
33
|
+
"Reserved Font Name" refers to any names specified as such after the
|
|
34
|
+
copyright statement(s).
|
|
35
|
+
|
|
36
|
+
"Original Version" refers to the collection of Font Software components as
|
|
37
|
+
distributed by the Copyright Holder(s).
|
|
38
|
+
|
|
39
|
+
"Modified Version" refers to any derivative made by adding to, deleting,
|
|
40
|
+
or substituting -- in part or in whole -- any of the components of the
|
|
41
|
+
Original Version, by changing formats or by porting the Font Software to a
|
|
42
|
+
new environment.
|
|
43
|
+
|
|
44
|
+
"Author" refers to any designer, engineer, programmer, technical
|
|
45
|
+
writer or other person who contributed to the Font Software.
|
|
46
|
+
|
|
47
|
+
PERMISSION & CONDITIONS
|
|
48
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
49
|
+
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
|
50
|
+
redistribute, and sell modified and unmodified copies of the Font
|
|
51
|
+
Software, subject to the following conditions:
|
|
52
|
+
|
|
53
|
+
1) Neither the Font Software nor any of its individual components,
|
|
54
|
+
in Original or Modified Versions, may be sold by itself.
|
|
55
|
+
|
|
56
|
+
2) Original or Modified Versions of the Font Software may be bundled,
|
|
57
|
+
redistributed and/or sold with any software, provided that each copy
|
|
58
|
+
contains the above copyright notice and this license. These can be
|
|
59
|
+
included either as stand-alone text files, human-readable headers or
|
|
60
|
+
in the appropriate machine-readable metadata fields within text or
|
|
61
|
+
binary files as long as those fields can be easily viewed by the user.
|
|
62
|
+
|
|
63
|
+
3) No Modified Version of the Font Software may use the Reserved Font
|
|
64
|
+
Name(s) unless explicit written permission is granted by the corresponding
|
|
65
|
+
Copyright Holder. This restriction only applies to the primary font name as
|
|
66
|
+
presented to the users.
|
|
67
|
+
|
|
68
|
+
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
|
69
|
+
Software shall not be used to promote, endorse or advertise any
|
|
70
|
+
Modified Version, except to acknowledge the contribution(s) of the
|
|
71
|
+
Copyright Holder(s) and the Author(s) or with their explicit written
|
|
72
|
+
permission.
|
|
73
|
+
|
|
74
|
+
5) The Font Software, modified or unmodified, in part or in whole,
|
|
75
|
+
must be distributed entirely under this license, and must not be
|
|
76
|
+
distributed under any other license. The requirement for fonts to
|
|
77
|
+
remain under this license does not apply to any document created
|
|
78
|
+
using the Font Software.
|
|
79
|
+
|
|
80
|
+
TERMINATION
|
|
81
|
+
This license becomes null and void if any of the above conditions are
|
|
82
|
+
not met.
|
|
83
|
+
|
|
84
|
+
DISCLAIMER
|
|
85
|
+
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
86
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
|
87
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
|
88
|
+
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
|
89
|
+
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
90
|
+
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
|
91
|
+
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
92
|
+
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
|
93
|
+
OTHER DEALINGS IN THE FONT SOFTWARE.
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
Copyright 2023 The Young Serif Project Authors (https://github.com/noirblancrouge/YoungSerif)
|
|
2
|
+
|
|
3
|
+
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
4
|
+
This license is copied below, and is also available with a FAQ at:
|
|
5
|
+
https://openfontlicense.org
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
-----------------------------------------------------------
|
|
9
|
+
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
|
10
|
+
-----------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
PREAMBLE
|
|
13
|
+
The goals of the Open Font License (OFL) are to stimulate worldwide
|
|
14
|
+
development of collaborative font projects, to support the font creation
|
|
15
|
+
efforts of academic and linguistic communities, and to provide a free and
|
|
16
|
+
open framework in which fonts may be shared and improved in partnership
|
|
17
|
+
with others.
|
|
18
|
+
|
|
19
|
+
The OFL allows the licensed fonts to be used, studied, modified and
|
|
20
|
+
redistributed freely as long as they are not sold by themselves. The
|
|
21
|
+
fonts, including any derivative works, can be bundled, embedded,
|
|
22
|
+
redistributed and/or sold with any software provided that any reserved
|
|
23
|
+
names are not used by derivative works. The fonts and derivatives,
|
|
24
|
+
however, cannot be released under any other type of license. The
|
|
25
|
+
requirement for fonts to remain under this license does not apply
|
|
26
|
+
to any document created using the fonts or their derivatives.
|
|
27
|
+
|
|
28
|
+
DEFINITIONS
|
|
29
|
+
"Font Software" refers to the set of files released by the Copyright
|
|
30
|
+
Holder(s) under this license and clearly marked as such. This may
|
|
31
|
+
include source files, build scripts and documentation.
|
|
32
|
+
|
|
33
|
+
"Reserved Font Name" refers to any names specified as such after the
|
|
34
|
+
copyright statement(s).
|
|
35
|
+
|
|
36
|
+
"Original Version" refers to the collection of Font Software components as
|
|
37
|
+
distributed by the Copyright Holder(s).
|
|
38
|
+
|
|
39
|
+
"Modified Version" refers to any derivative made by adding to, deleting,
|
|
40
|
+
or substituting -- in part or in whole -- any of the components of the
|
|
41
|
+
Original Version, by changing formats or by porting the Font Software to a
|
|
42
|
+
new environment.
|
|
43
|
+
|
|
44
|
+
"Author" refers to any designer, engineer, programmer, technical
|
|
45
|
+
writer or other person who contributed to the Font Software.
|
|
46
|
+
|
|
47
|
+
PERMISSION & CONDITIONS
|
|
48
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
49
|
+
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
|
50
|
+
redistribute, and sell modified and unmodified copies of the Font
|
|
51
|
+
Software, subject to the following conditions:
|
|
52
|
+
|
|
53
|
+
1) Neither the Font Software nor any of its individual components,
|
|
54
|
+
in Original or Modified Versions, may be sold by itself.
|
|
55
|
+
|
|
56
|
+
2) Original or Modified Versions of the Font Software may be bundled,
|
|
57
|
+
redistributed and/or sold with any software, provided that each copy
|
|
58
|
+
contains the above copyright notice and this license. These can be
|
|
59
|
+
included either as stand-alone text files, human-readable headers or
|
|
60
|
+
in the appropriate machine-readable metadata fields within text or
|
|
61
|
+
binary files as long as those fields can be easily viewed by the user.
|
|
62
|
+
|
|
63
|
+
3) No Modified Version of the Font Software may use the Reserved Font
|
|
64
|
+
Name(s) unless explicit written permission is granted by the corresponding
|
|
65
|
+
Copyright Holder. This restriction only applies to the primary font name as
|
|
66
|
+
presented to the users.
|
|
67
|
+
|
|
68
|
+
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
|
69
|
+
Software shall not be used to promote, endorse or advertise any
|
|
70
|
+
Modified Version, except to acknowledge the contribution(s) of the
|
|
71
|
+
Copyright Holder(s) and the Author(s) or with their explicit written
|
|
72
|
+
permission.
|
|
73
|
+
|
|
74
|
+
5) The Font Software, modified or unmodified, in part or in whole,
|
|
75
|
+
must be distributed entirely under this license, and must not be
|
|
76
|
+
distributed under any other license. The requirement for fonts to
|
|
77
|
+
remain under this license does not apply to any document created
|
|
78
|
+
using the Font Software.
|
|
79
|
+
|
|
80
|
+
TERMINATION
|
|
81
|
+
This license becomes null and void if any of the above conditions are
|
|
82
|
+
not met.
|
|
83
|
+
|
|
84
|
+
DISCLAIMER
|
|
85
|
+
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
86
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
|
87
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
|
88
|
+
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
|
89
|
+
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
90
|
+
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
|
91
|
+
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
92
|
+
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
|
93
|
+
OTHER DEALINGS IN THE FONT SOFTWARE.
|
|
Binary file
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-review
|
|
3
|
+
description: Evidence-first code review workflow for review, audit, PR feedback, regression checks, and pre-merge quality verification. Use when asked to review changes, audit quality, find risks, or validate external review comments.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Code Review
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Review is not performance. Do not invent issues. Do not rubber-stamp code.
|
|
11
|
+
|
|
12
|
+
**Core principle:** every finding must be grounded in codebase evidence.
|
|
13
|
+
|
|
14
|
+
## Use This Skill For
|
|
15
|
+
|
|
16
|
+
- review this change
|
|
17
|
+
- audit this diff
|
|
18
|
+
- check for bugs/regressions
|
|
19
|
+
- validate PR quality before merge
|
|
20
|
+
- verify external review comments
|
|
21
|
+
|
|
22
|
+
## Review Order
|
|
23
|
+
|
|
24
|
+
Check in this order:
|
|
25
|
+
|
|
26
|
+
1. **Correctness**
|
|
27
|
+
- does the code actually implement the requested behavior?
|
|
28
|
+
- are there obvious broken paths, stale refs, wrong assumptions, or missing cases?
|
|
29
|
+
|
|
30
|
+
2. **Regression risk**
|
|
31
|
+
- what existing behavior could this break?
|
|
32
|
+
- are touched shared paths/tests/contracts still aligned?
|
|
33
|
+
|
|
34
|
+
3. **Safety / security / data loss**
|
|
35
|
+
- destructive actions
|
|
36
|
+
- auth/permission checks
|
|
37
|
+
- path handling
|
|
38
|
+
- unsafe shell / DB / file operations
|
|
39
|
+
|
|
40
|
+
4. **Performance / scale**
|
|
41
|
+
- accidental N+1, repeated I/O, redundant parsing, large scans inside hot paths
|
|
42
|
+
|
|
43
|
+
5. **Maintainability**
|
|
44
|
+
- duplicated logic
|
|
45
|
+
- dead branches
|
|
46
|
+
- misleading naming
|
|
47
|
+
- drift between docs/tests/source
|
|
48
|
+
|
|
49
|
+
## Workflow
|
|
50
|
+
|
|
51
|
+
### 1. Gather minimal context
|
|
52
|
+
|
|
53
|
+
- Read the diff or changed files first
|
|
54
|
+
- For non-trivial reviews, use index-first context:
|
|
55
|
+
- open primary target(s)
|
|
56
|
+
- open 1-2 analog/shared files when needed
|
|
57
|
+
- open related tests if behavior is covered
|
|
58
|
+
|
|
59
|
+
### 2. Verify each concern against reality
|
|
60
|
+
|
|
61
|
+
Before raising a finding:
|
|
62
|
+
- point to the exact file and lines
|
|
63
|
+
- explain the concrete failure mode
|
|
64
|
+
- verify it is not already handled elsewhere
|
|
65
|
+
|
|
66
|
+
If a comment from another reviewer looks questionable:
|
|
67
|
+
- check the actual codebase behavior first
|
|
68
|
+
- do not accept it blindly
|
|
69
|
+
|
|
70
|
+
## What Makes a Good Finding
|
|
71
|
+
|
|
72
|
+
A good finding includes:
|
|
73
|
+
- **where** the issue is
|
|
74
|
+
- **why** it matters
|
|
75
|
+
- **when/how** it fails
|
|
76
|
+
- **what severity** it deserves
|
|
77
|
+
|
|
78
|
+
Good:
|
|
79
|
+
- “This cache reuse key ignores file moves, so renames keep stale entries until manual cleanup.”
|
|
80
|
+
|
|
81
|
+
Bad:
|
|
82
|
+
- “This could maybe be cleaner.”
|
|
83
|
+
|
|
84
|
+
## Severity Guide
|
|
85
|
+
|
|
86
|
+
- **P0** — data loss, security break, destructive wrong behavior
|
|
87
|
+
- **P1** — likely bug / broken common path / high regression risk
|
|
88
|
+
- **P2** — meaningful but narrower correctness/maintainability issue
|
|
89
|
+
- **P3** — minor cleanup or polish
|
|
90
|
+
|
|
91
|
+
## Review Rules
|
|
92
|
+
|
|
93
|
+
- Prefer **few precise findings** over many weak ones
|
|
94
|
+
- If no real issue is found, say so
|
|
95
|
+
- Do not demand refactors without concrete payoff
|
|
96
|
+
- Do not call style preference a bug
|
|
97
|
+
- If source contradicts docs, source wins — note doc drift separately if relevant
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: debugging-toolkit
|
|
3
|
+
description: Comprehensive debugging methodology combining systematic investigation (4 phases) with deep-dive root cause tracing - use for runtime bugs, crashes, and unexpected behavior (not test writing) to ensure root cause is found before fixing
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Debugging Toolkit
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Random fixes waste time and create new bugs. Quick patches mask underlying issues. This toolkit combines systematic investigation with deep tracing techniques.
|
|
11
|
+
|
|
12
|
+
**Core principle:** ALWAYS find root cause before attempting fixes. Symptom fixes are failure.
|
|
13
|
+
|
|
14
|
+
**The Iron Law:**
|
|
15
|
+
```
|
|
16
|
+
NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## When to Use
|
|
20
|
+
|
|
21
|
+
Use for ANY technical issue:
|
|
22
|
+
- Test failures
|
|
23
|
+
- Bugs in production
|
|
24
|
+
- Unexpected behavior
|
|
25
|
+
- Performance problems
|
|
26
|
+
- Build failures
|
|
27
|
+
|
|
28
|
+
**Especially when:**
|
|
29
|
+
- Under time pressure (emergencies make guessing tempting)
|
|
30
|
+
- "Just one quick fix" seems obvious
|
|
31
|
+
- Bug appears deep in the stack trace
|
|
32
|
+
|
|
33
|
+
## The Four Phases
|
|
34
|
+
|
|
35
|
+
You MUST complete each phase before proceeding to the next.
|
|
36
|
+
|
|
37
|
+
### Phase 1: Root Cause Investigation
|
|
38
|
+
|
|
39
|
+
**BEFORE attempting ANY fix:**
|
|
40
|
+
|
|
41
|
+
1. **Read Error Messages Carefully**
|
|
42
|
+
- Don't skip past errors or warnings
|
|
43
|
+
- Read stack traces completely
|
|
44
|
+
- Note line numbers, file paths, error codes
|
|
45
|
+
|
|
46
|
+
2. **Reproduce Consistently**
|
|
47
|
+
- Can you trigger it reliably?
|
|
48
|
+
- What are the exact steps?
|
|
49
|
+
- If not reproducible → gather more data, don't guess
|
|
50
|
+
|
|
51
|
+
3. **Check Recent Changes**
|
|
52
|
+
- What changed that could cause this?
|
|
53
|
+
- Git diff, recent commits
|
|
54
|
+
- New dependencies, config changes
|
|
55
|
+
|
|
56
|
+
4. **Root Cause Tracing (Deep Dive)**
|
|
57
|
+
|
|
58
|
+
**Use when error is deep in call stack:**
|
|
59
|
+
|
|
60
|
+
**The Tracing Process:**
|
|
61
|
+
1. **Observe Symptom:** `Error: git init failed in /packages/core`
|
|
62
|
+
2. **Find Immediate Cause:** `execFile('git', ['init'], { cwd: '' })`
|
|
63
|
+
3. **Trace Upwards:**
|
|
64
|
+
- Who called this? `WorktreeManager`
|
|
65
|
+
- With what arguments? `projectDir = ''`
|
|
66
|
+
4. **Find Original Trigger:**
|
|
67
|
+
- Where did empty string come from? `setupCoreTest()` returned empty `tempDir`
|
|
68
|
+
5. **Fix at Source:** Fix `setupCoreTest`, NOT the immediate caller.
|
|
69
|
+
|
|
70
|
+
**Instrumentation:**
|
|
71
|
+
If manual tracing fails, add logging *before* the failure:
|
|
72
|
+
```js
|
|
73
|
+
console.error('DEBUG context:', {
|
|
74
|
+
arg: someArg,
|
|
75
|
+
stack: new Error().stack // crucial!
|
|
76
|
+
});
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
5. **Gather Evidence in Multi-Component Systems**
|
|
80
|
+
- Log what enters/exits each component boundary
|
|
81
|
+
- Verify environment/config propagation
|
|
82
|
+
|
|
83
|
+
### Phase 2: Pattern Analysis
|
|
84
|
+
|
|
85
|
+
**Find the pattern before fixing:**
|
|
86
|
+
|
|
87
|
+
1. **Find Working Examples**
|
|
88
|
+
- Locate similar working code in same codebase
|
|
89
|
+
- What works that's similar to what's broken?
|
|
90
|
+
|
|
91
|
+
2. **Compare Against References**
|
|
92
|
+
- Read reference implementation COMPLETELY
|
|
93
|
+
- Don't skim - read every line
|
|
94
|
+
|
|
95
|
+
3. **Identify Differences**
|
|
96
|
+
- What's different between working and broken?
|
|
97
|
+
- List every difference, however small
|
|
98
|
+
|
|
99
|
+
### Phase 3: Hypothesis and Testing
|
|
100
|
+
|
|
101
|
+
**Scientific method:**
|
|
102
|
+
|
|
103
|
+
1. **Form Single Hypothesis**
|
|
104
|
+
- State clearly: "I think X is the root cause because Y"
|
|
105
|
+
- Write it down
|
|
106
|
+
|
|
107
|
+
2. **Test Minimally**
|
|
108
|
+
- Make the SMALLEST possible change to test hypothesis
|
|
109
|
+
- One variable at a time
|
|
110
|
+
|
|
111
|
+
3. **Verify Before Continuing**
|
|
112
|
+
- Did it work? Yes → Phase 4
|
|
113
|
+
- Didn't work? Form NEW hypothesis (don't stack fixes)
|
|
114
|
+
|
|
115
|
+
### Phase 4: Implementation
|
|
116
|
+
|
|
117
|
+
**Fix the root cause, not the symptom:**
|
|
118
|
+
|
|
119
|
+
1. **Create Failing Test Case**
|
|
120
|
+
- Simplest possible reproduction
|
|
121
|
+
- Automated test if possible
|
|
122
|
+
- **MUST** have before fixing
|
|
123
|
+
|
|
124
|
+
2. **Implement Single Fix**
|
|
125
|
+
- Address the root cause identified
|
|
126
|
+
- ONE change at a time
|
|
127
|
+
- No "while I'm here" improvements
|
|
128
|
+
|
|
129
|
+
3. **Verify Fix**
|
|
130
|
+
- Test passes now?
|
|
131
|
+
- No other tests broken?
|
|
132
|
+
|
|
133
|
+
4. **If Fix Doesn't Work**
|
|
134
|
+
- STOP
|
|
135
|
+
- Count: How many fixes have you tried?
|
|
136
|
+
- If ≥ 3: **STOP and question the architecture**
|
|
137
|
+
- Discuss with your human partner before attempting Fix #4
|
|
138
|
+
|
|
139
|
+
## Red Flags - STOP and Follow Process
|
|
140
|
+
|
|
141
|
+
If you catch yourself thinking:
|
|
142
|
+
- "Quick fix for now, investigate later"
|
|
143
|
+
- "Just try changing X and see if it works"
|
|
144
|
+
- "It's probably X, let me fix that"
|
|
145
|
+
- "One more fix attempt" (when already tried 2+)
|
|
146
|
+
|
|
147
|
+
**ALL of these mean: STOP. Return to Phase 1.**
|
|
148
|
+
|
|
149
|
+
## Quick Reference
|
|
150
|
+
|
|
151
|
+
| Phase | Key Activities | Success Criteria |
|
|
152
|
+
|-------|---------------|------------------|
|
|
153
|
+
| **1. Root Cause** | Read errors, reproduce, trace stack backwards | Understand WHAT and WHY |
|
|
154
|
+
| **2. Pattern** | Find working examples, compare | Identify differences |
|
|
155
|
+
| **3. Hypothesis** | Form theory, test minimally | Confirmed or new hypothesis |
|
|
156
|
+
| **4. Implementation** | Create test, fix, verify | Bug resolved, tests pass |
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: delivery
|
|
3
|
+
description: Project delivery workflow and quality gates for UKit templates.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Delivery Skill
|
|
7
|
+
|
|
8
|
+
Project: {{project.name}} | Stack: {{project.stack}}
|
|
9
|
+
|
|
10
|
+
## Execution Rules
|
|
11
|
+
|
|
12
|
+
- Act first, explain after. Smallest correct change set.
|
|
13
|
+
- Review gate for non-trivial edits (>3 files or >50 lines).
|
|
14
|
+
- Reuse existing code. No drive-by refactors.
|
|
15
|
+
|
|
16
|
+
## Docs-Centric Principle
|
|
17
|
+
|
|
18
|
+
**Docs are the center.** Read docs first, write docs last.
|
|
19
|
+
Token cost is acceptable: accurate docs prevent wasted debugging cycles and wrong root cause guesses.
|
|
20
|
+
**Source is always truth.** If source contradicts docs → update docs immediately before continuing.
|
|
21
|
+
|
|
22
|
+
Docs reading is **graduated by task size**:
|
|
23
|
+
- Trivial (< 30s): skip docs entirely.
|
|
24
|
+
- Simple (1 file, clear scope): `MEMORY.md` only — quick constraints check.
|
|
25
|
+
- Non-trivial (multi-file, unclear scope, bugs): full Tier 1 sequence below.
|
|
26
|
+
|
|
27
|
+
## 3-Tier Reading Strategy
|
|
28
|
+
|
|
29
|
+
Read in order. Never skip to Tier 3 without Tier 1+2.
|
|
30
|
+
|
|
31
|
+
**Tier 1 — Docs** (always first, cheapest context):
|
|
32
|
+
- `docs/MEMORY.md` → decisions, constraints, known bugs, open risks
|
|
33
|
+
- `docs/PROJECT.md` → architecture, business rules, dangerous areas
|
|
34
|
+
- `docs/CODE_MAP.md` → structural index (if it exists)
|
|
35
|
+
- Recent `docs/WORKLOG.md` → when continuing prior work or debugging
|
|
36
|
+
|
|
37
|
+
**Tier 2 — Structure Scan** (before opening source files):
|
|
38
|
+
- Glob file tree → know what exists where
|
|
39
|
+
- Grep function/class/export signatures → understand shape without full reads
|
|
40
|
+
- Narrows exactly which files to open in Tier 3
|
|
41
|
+
|
|
42
|
+
**Tier 3 — Targeted Source Reads** (only what is needed):
|
|
43
|
+
- Read only the specific files relevant to the task
|
|
44
|
+
- If source contradicts docs → **source wins, update docs before proceeding**
|
|
45
|
+
|
|
46
|
+
## Docs Discipline
|
|
47
|
+
|
|
48
|
+
After any non-trivial task, AI must update docs proactively — **do not wait to be asked**:
|
|
49
|
+
|
|
50
|
+
- **MEMORY.md** ⭐ — **most critical**. Always ask after any task: "What did I learn about this system?" Write it if durable: new decision, constraint, bug pattern, open risk, or handoff note.
|
|
51
|
+
- **WORKLOG** — always: date, what was done, files changed, verification, outcome
|
|
52
|
+
- **PROJECT.md** — when: new module added, business rule clarified, dangerous area identified
|
|
53
|
+
- **CODE_MAP.md** — when: module structure changes, new integration added, new dangerous area found
|
|
54
|
+
|
|
55
|
+
**AI must infer docs content from source**, not wait for user to dictate it. If a section is empty, read source and fill it in. If docs are stale, update them to match source before continuing.
|
|
56
|
+
|
|
57
|
+
## Workflow
|
|
58
|
+
|
|
59
|
+
1. **Orient** — Tier 1: read docs, form hypothesis about the system
|
|
60
|
+
2. **Scan** — Tier 2: Glob + Grep to verify hypothesis, find relevant files
|
|
61
|
+
3. **Verify** — if source contradicts docs, update docs first
|
|
62
|
+
4. **Execute** — smallest change, follow existing patterns
|
|
63
|
+
5. **Test** — run tests, check regressions
|
|
64
|
+
6. **Document** — update WORKLOG + any stale/missing docs sections
|
|
65
|
+
|
|
66
|
+
## Docs Noise — Smart Compact
|
|
67
|
+
|
|
68
|
+
Docs grow over time and become noisy. AI must manage this proactively:
|
|
69
|
+
|
|
70
|
+
**WORKLOG** — when it exceeds ~100 lines:
|
|
71
|
+
- Summarize entries older than 2 weeks into a single line in `MEMORY.md` → Completed Milestones
|
|
72
|
+
- Keep only the last 2–3 weeks of detail in WORKLOG
|
|
73
|
+
- Do this during the Document step, not as a separate task
|
|
74
|
+
|
|
75
|
+
**MEMORY.md** — when sections become stale:
|
|
76
|
+
- Remove resolved risks from Open Risks
|
|
77
|
+
- Archive outdated decisions to a `## Archived Decisions` section at the bottom
|
|
78
|
+
- Merge duplicate bug entries into a single pattern note
|
|
79
|
+
- Keep each section scannable in < 10 lines — if longer, consolidate
|
|
80
|
+
|
|
81
|
+
**CODE_MAP.md** — when it drifts from source:
|
|
82
|
+
- During Tier 2 scan, if you find the map is wrong or missing entries → fix it before continuing
|
|
83
|
+
- Remove entries for deleted modules; add entries for new ones discovered
|
|
84
|
+
|
|
85
|
+
**Principle**: Docs should always be shorter than source code and faster to read than scanning files. If reading docs takes longer than a Grep scan, the docs are too noisy.
|
|
86
|
+
|
|
87
|
+
## Quality
|
|
88
|
+
|
|
89
|
+
- No regressions. Security basics. No debug code in production.
|
|
90
|
+
- Only change what was requested.
|
|
91
|
+
|
|
92
|
+
Provider: UNIC
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: discover-security
|
|
3
|
+
description: Project-local security workflow for authentication, authorization, input validation, secrets, shell/file safety, database safety, and security review. Use for security-sensitive coding, audits, OWASP-style hardening, and risky data/auth changes.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Security Workflow
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Security work should stay **project-local, evidence-first, and minimal-scope**.
|
|
11
|
+
|
|
12
|
+
This skill exists so a UKit-installed project can handle common security-sensitive work **without depending on external home-directory skills**.
|
|
13
|
+
|
|
14
|
+
## Use This Skill For
|
|
15
|
+
|
|
16
|
+
- auth / authorization changes
|
|
17
|
+
- secrets / credentials / tokens
|
|
18
|
+
- input validation / sanitization
|
|
19
|
+
- SQL injection / XSS / command injection risk
|
|
20
|
+
- file-system safety / path traversal / dangerous shell usage
|
|
21
|
+
- security review / hardening / audit
|
|
22
|
+
- risky migration / uninstall / destructive flows
|
|
23
|
+
|
|
24
|
+
## First Moves
|
|
25
|
+
|
|
26
|
+
1. **Treat the task as non-trivial by default**
|
|
27
|
+
2. Use **index-first context**
|
|
28
|
+
- open primary target(s)
|
|
29
|
+
- open related tests
|
|
30
|
+
- open shared abstractions
|
|
31
|
+
3. If review/audit is requested, also read:
|
|
32
|
+
- `.claude/skills/code-review/SKILL.md`
|
|
33
|
+
|
|
34
|
+
## Security Review Checklist
|
|
35
|
+
|
|
36
|
+
Check these areas in order:
|
|
37
|
+
|
|
38
|
+
### 1. Trust boundaries
|
|
39
|
+
- what input is user-controlled?
|
|
40
|
+
- what crosses API / DB / shell / filesystem boundaries?
|
|
41
|
+
|
|
42
|
+
### 2. Authorization
|
|
43
|
+
- is access checked in the right place?
|
|
44
|
+
- can a caller reach this path without required permission?
|
|
45
|
+
|
|
46
|
+
### 3. Input handling
|
|
47
|
+
- validate shape, type, and allowed values
|
|
48
|
+
- reject dangerous or ambiguous inputs early
|
|
49
|
+
- avoid “sanitize later” logic
|
|
50
|
+
|
|
51
|
+
### 4. Dangerous execution surfaces
|
|
52
|
+
- shell command construction
|
|
53
|
+
- SQL string concatenation
|
|
54
|
+
- path joins / traversal
|
|
55
|
+
- deletes / recursive writes / destructive mutations
|
|
56
|
+
|
|
57
|
+
### 5. Secrets and sensitive data
|
|
58
|
+
- no secrets in logs, docs, tests, or committed config
|
|
59
|
+
- no tokens/passwords echoed unnecessarily
|
|
60
|
+
|
|
61
|
+
### 6. Regression risk
|
|
62
|
+
- what existing safe behavior could this weaken?
|
|
63
|
+
- are related tests covering the dangerous path?
|
|
64
|
+
|
|
65
|
+
## UKit-Specific Guidance
|
|
66
|
+
|
|
67
|
+
When reviewing or changing UKit internals, pay special attention to:
|
|
68
|
+
- install/uninstall safety
|
|
69
|
+
- path traversal protection
|
|
70
|
+
- symlink handling
|
|
71
|
+
- manifest validation
|
|
72
|
+
- hook auto-allow logic
|
|
73
|
+
- index commands that execute shell or parse project files
|
|
74
|
+
|
|
75
|
+
## Pairing Guidance
|
|
76
|
+
|
|
77
|
+
- For **security review** → pair with `.claude/skills/code-review/SKILL.md`
|
|
78
|
+
- For **bug investigation** → pair with `.claude/skills/debugging-toolkit/SKILL.md`
|
|
79
|
+
- For **test coverage around a fix** → pair with `.claude/skills/testing-quality/SKILL.md`
|
|
80
|
+
|
|
81
|
+
## Rules
|
|
82
|
+
|
|
83
|
+
- prefer narrow, structural protections over ad-hoc patching
|
|
84
|
+
- fix unsafe behavior at the earliest boundary possible
|
|
85
|
+
- do not approve risky code without a concrete failure model
|
|
86
|
+
- if a change increases destructive power, require stronger evidence and verification
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: docker-packaging
|
|
3
|
+
description: Containerization workflow for Dockerfile, .dockerignore, compose.yaml/docker-compose.yml, multi-stage builds, healthchecks, service dependencies, env handling, and runnable Docker packages. Use when asked to containerize an app, add or fix Docker/Compose, package a repo to run in Docker, or prepare local/dev/prod container workflows.
|
|
4
|
+
enabledByDefault: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Docker Packaging
|
|
8
|
+
|
|
9
|
+
Use this skill when the task is about:
|
|
10
|
+
- creating or fixing a `Dockerfile`
|
|
11
|
+
- adding `.dockerignore`
|
|
12
|
+
- creating or fixing `compose.yaml` / `docker-compose.yml`
|
|
13
|
+
- packaging an app so it runs locally or in deployment via Docker
|
|
14
|
+
- tightening container startup, healthchecks, env wiring, or dependency services
|
|
15
|
+
|
|
16
|
+
## Default workflow
|
|
17
|
+
|
|
18
|
+
1. Inspect the repo first:
|
|
19
|
+
- runtime and package manager
|
|
20
|
+
- real build/start commands
|
|
21
|
+
- ports
|
|
22
|
+
- env files / required variables
|
|
23
|
+
- DB/cache/queue dependencies
|
|
24
|
+
- generated build output vs source-run mode
|
|
25
|
+
2. Prefer the smallest reliable image and a multi-stage build.
|
|
26
|
+
3. Add `.dockerignore` whenever a Docker build is introduced.
|
|
27
|
+
4. Use Compose only when the app needs multiple services or the user explicitly asks for it.
|
|
28
|
+
5. Keep the generated package runnable with the repo’s actual commands; do not invent fake entrypoints.
|
|
29
|
+
|
|
30
|
+
## Build rules
|
|
31
|
+
|
|
32
|
+
- Prefer official runtime images unless the repo clearly needs something else.
|
|
33
|
+
- Separate dependency install, build, and runtime stages when the stack benefits from it.
|
|
34
|
+
- Keep runtime images free of dev-only tooling when possible.
|
|
35
|
+
- Prefer non-root runtime users when the base image already supports it cleanly.
|
|
36
|
+
- Copy manifests / lockfiles before source code to preserve dependency-layer cache.
|
|
37
|
+
- Respect the repo’s native package manager and lockfile.
|
|
38
|
+
- For frontend builds, serve the real built output; do not leave dev servers in production images unless the user explicitly wants a dev container.
|
|
39
|
+
|
|
40
|
+
## Compose rules
|
|
41
|
+
|
|
42
|
+
- Prefer `compose.yaml` for new files; preserve an existing `docker-compose.yml` if the repo already uses it.
|
|
43
|
+
- Add only the services the app truly needs.
|
|
44
|
+
- Use healthchecks when startup order matters.
|
|
45
|
+
- Wire service names, ports, and env variables consistently with the app config.
|
|
46
|
+
- Use named volumes only when persistence or local live-edit mounting is actually useful.
|
|
47
|
+
- Do not hardcode secrets; use `.env`, `env_file`, or placeholder variables.
|
|
48
|
+
|
|
49
|
+
## Verification
|
|
50
|
+
|
|
51
|
+
- Verify against repo reality:
|
|
52
|
+
- build command
|
|
53
|
+
- runtime command
|
|
54
|
+
- exposed port
|
|
55
|
+
- dependency services
|
|
56
|
+
- Prefer lightweight checks first:
|
|
57
|
+
- `docker build`
|
|
58
|
+
- `docker compose config`
|
|
59
|
+
- targeted smoke command for the real app entry
|
|
60
|
+
- If UKit’s source-code index is available, use it first to find entrypoints, ports, config files, and related services before drafting Docker assets.
|