@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,187 @@
|
|
|
1
|
+
{
|
|
2
|
+
"profile": "ukit-codex-safe-auto",
|
|
3
|
+
"version": 2,
|
|
4
|
+
"packageManager": "{{runtime.packageManager}}",
|
|
5
|
+
"indexCache": {
|
|
6
|
+
"strategy": "index-first",
|
|
7
|
+
"directory": ".cache/index",
|
|
8
|
+
"artifacts": [
|
|
9
|
+
"files.json",
|
|
10
|
+
"symbols.json",
|
|
11
|
+
"imports.json",
|
|
12
|
+
"tests-map.json",
|
|
13
|
+
"hotspots.json",
|
|
14
|
+
"archetypes.json",
|
|
15
|
+
"relations.json",
|
|
16
|
+
"analogs.json"
|
|
17
|
+
],
|
|
18
|
+
"freshnessMaxAgeHours": 24,
|
|
19
|
+
"whenMissingOrStale": [
|
|
20
|
+
"node .codex/ukit/index/refresh-index.mjs",
|
|
21
|
+
"fallback: node .codex/ukit/index/build-index.mjs"
|
|
22
|
+
],
|
|
23
|
+
"triageFlow": [
|
|
24
|
+
"node .codex/ukit/index/query-index.mjs \"<error|symbol|path>\"",
|
|
25
|
+
"node .codex/ukit/index/triage.mjs \"<error signature>\"",
|
|
26
|
+
"open top 1-3 ranked files first",
|
|
27
|
+
"if analogs found, open 1 analog for pattern reference"
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
"analogRetrieval": {
|
|
31
|
+
"enabled": true,
|
|
32
|
+
"contextResolverCommand": "node .codex/ukit/index/resolve-context.mjs \"<intent>\" [--target <file>]",
|
|
33
|
+
"maxAnalogFiles": 3,
|
|
34
|
+
"maxSharedAbstractions": 2,
|
|
35
|
+
"contextBudgetByTier": {
|
|
36
|
+
"trivial": { "minFiles": 1, "maxFiles": 2 },
|
|
37
|
+
"simple": { "minFiles": 2, "maxFiles": 5 },
|
|
38
|
+
"non-trivial": { "minFiles": 4, "maxFiles": 8 }
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"skillRouter": {
|
|
42
|
+
"autoActivateOnPromptOrToolSignals": true,
|
|
43
|
+
"helperCommand": "node .codex/ukit/index/route-task.mjs \"<prompt>\" [--tool-command <cmd>] [--target <file>] [--type trivial|simple|non-trivial]",
|
|
44
|
+
"preferHelperForComplexRouting": true,
|
|
45
|
+
"sharedStateFile": ".claude/ukit/skill-router-state.json",
|
|
46
|
+
"rescanAfterFirstRelevantToolCalls": true,
|
|
47
|
+
"preferToolEvidenceAfterPrompt": true,
|
|
48
|
+
"maxActiveSkills": 2,
|
|
49
|
+
"suppressDuplicateRoutingWithinMinutes": 10,
|
|
50
|
+
"promptSignals": {
|
|
51
|
+
"review": [
|
|
52
|
+
"code-review"
|
|
53
|
+
],
|
|
54
|
+
"debug": [
|
|
55
|
+
"debugging-toolkit"
|
|
56
|
+
],
|
|
57
|
+
"testing": [
|
|
58
|
+
"testing-quality"
|
|
59
|
+
],
|
|
60
|
+
"documentation": [
|
|
61
|
+
"docs-quality"
|
|
62
|
+
],
|
|
63
|
+
"security": [
|
|
64
|
+
"discover-security"
|
|
65
|
+
],
|
|
66
|
+
"maintenance": [
|
|
67
|
+
"repo-maintenance"
|
|
68
|
+
]
|
|
69
|
+
},
|
|
70
|
+
"toolSignals": {
|
|
71
|
+
"bashTriage": [
|
|
72
|
+
"debugging-toolkit"
|
|
73
|
+
],
|
|
74
|
+
"bashTest": [
|
|
75
|
+
"testing-quality"
|
|
76
|
+
],
|
|
77
|
+
"writeOrEditDocs": [
|
|
78
|
+
"docs-quality"
|
|
79
|
+
],
|
|
80
|
+
"editDocs": [
|
|
81
|
+
"docs-quality"
|
|
82
|
+
],
|
|
83
|
+
"editRiskyBoundary": [
|
|
84
|
+
"discover-security"
|
|
85
|
+
],
|
|
86
|
+
"installOrRefresh": [
|
|
87
|
+
"repo-maintenance"
|
|
88
|
+
]
|
|
89
|
+
},
|
|
90
|
+
"routingRule": {
|
|
91
|
+
"endUserShouldNotNeedSkillNames": true,
|
|
92
|
+
"selectSmallestUsefulSkillSet": true
|
|
93
|
+
},
|
|
94
|
+
"delegationBridge": {
|
|
95
|
+
"enabled": true,
|
|
96
|
+
"sharedStateField": "routeSummary.delegateHint",
|
|
97
|
+
"displaySummaryField": "routeSummary.line",
|
|
98
|
+
"structuredLaneFields": [
|
|
99
|
+
"routeSummary.nextActionType",
|
|
100
|
+
"routeSummary.nextActionCommand",
|
|
101
|
+
"routeSummary.helperHint",
|
|
102
|
+
"routeSummary.policyMode"
|
|
103
|
+
],
|
|
104
|
+
"preferIndexFirstBeforeDelegating": true,
|
|
105
|
+
"treatHintAsInternalOnly": true
|
|
106
|
+
},
|
|
107
|
+
"contextBridge": {
|
|
108
|
+
"enabled": true,
|
|
109
|
+
"preferRecentContextRecommendation": true,
|
|
110
|
+
"resolverCommand": "node .codex/ukit/index/resolve-context.mjs \"<intent>\" [--target <file>] [--type trivial|simple|non-trivial]",
|
|
111
|
+
"includeStyleFiles": true
|
|
112
|
+
},
|
|
113
|
+
"verificationBridge": {
|
|
114
|
+
"enabled": true,
|
|
115
|
+
"preferTargetedVerificationFromContext": true,
|
|
116
|
+
"helperCommand": "node .codex/ukit/index/verify-context.mjs \"<intent>\" [--target <file>] [--type trivial|simple|non-trivial]",
|
|
117
|
+
"expandForRiskySkills": [
|
|
118
|
+
"discover-security",
|
|
119
|
+
"repo-maintenance"
|
|
120
|
+
],
|
|
121
|
+
"docsOnlyCanSkipBroadTests": true,
|
|
122
|
+
"executionPolicy": {
|
|
123
|
+
"autoRunTargetedVerificationWhenSafe": true,
|
|
124
|
+
"enforceTargetedBeforeBroadWhenLocalized": true,
|
|
125
|
+
"preserveLastExplicitPromptAcrossToolSignals": true,
|
|
126
|
+
"autoRunFallbacksWhen": [
|
|
127
|
+
"sharedScope",
|
|
128
|
+
"riskySkillOrTask"
|
|
129
|
+
],
|
|
130
|
+
"askBeforeBroadVerificationWithoutRelatedTests": true,
|
|
131
|
+
"preferCommandOrderFromVerificationPlan": true
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
"execution": {
|
|
136
|
+
"mode": "auto-with-guardrails",
|
|
137
|
+
"riskTiers": {
|
|
138
|
+
"low": {
|
|
139
|
+
"autoAllow": [
|
|
140
|
+
"read",
|
|
141
|
+
"search",
|
|
142
|
+
"lint",
|
|
143
|
+
"test",
|
|
144
|
+
"typecheck",
|
|
145
|
+
"git status",
|
|
146
|
+
"git diff",
|
|
147
|
+
"git log"
|
|
148
|
+
]
|
|
149
|
+
},
|
|
150
|
+
"medium": {
|
|
151
|
+
"autoAllowInWorkspaceOnly": [
|
|
152
|
+
"build",
|
|
153
|
+
"format",
|
|
154
|
+
"safe file writes"
|
|
155
|
+
]
|
|
156
|
+
},
|
|
157
|
+
"high": {
|
|
158
|
+
"alwaysAsk": [
|
|
159
|
+
"git push",
|
|
160
|
+
"force push",
|
|
161
|
+
"reset --hard",
|
|
162
|
+
"delete recursive",
|
|
163
|
+
"database migration",
|
|
164
|
+
"system-wide changes"
|
|
165
|
+
]
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
"decisionPolicy": {
|
|
170
|
+
"preferIndexEvidenceOverGuessing": true,
|
|
171
|
+
"preferAnalogOverGenericGeneration": true,
|
|
172
|
+
"openLimitedFilesFirst": 3,
|
|
173
|
+
"escalateToDeepReadAfterFailedLoops": 2
|
|
174
|
+
},
|
|
175
|
+
"scopeVerification": {
|
|
176
|
+
"trivial": "syntax/format check if needed",
|
|
177
|
+
"simple": "targeted lint/typecheck or test",
|
|
178
|
+
"non-trivial": "full test + lint + typecheck"
|
|
179
|
+
},
|
|
180
|
+
"verification": {
|
|
181
|
+
"requiredBeforeCompletion": [
|
|
182
|
+
"{{runtime.packageManager}} test",
|
|
183
|
+
"{{runtime.packageManager}} lint",
|
|
184
|
+
"{{runtime.packageManager}} typecheck"
|
|
185
|
+
]
|
|
186
|
+
}
|
|
187
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Dependencies
|
|
2
|
+
node_modules/
|
|
3
|
+
.pnp
|
|
4
|
+
.pnp.js
|
|
5
|
+
|
|
6
|
+
# Testing
|
|
7
|
+
coverage/
|
|
8
|
+
.nyc_output/
|
|
9
|
+
|
|
10
|
+
# Production build
|
|
11
|
+
dist/
|
|
12
|
+
build/
|
|
13
|
+
out/
|
|
14
|
+
|
|
15
|
+
# Environment variables
|
|
16
|
+
.env
|
|
17
|
+
.env.local
|
|
18
|
+
.env.development.local
|
|
19
|
+
.env.test.local
|
|
20
|
+
.env.production.local
|
|
21
|
+
.claude/ukit/.env
|
|
22
|
+
|
|
23
|
+
# Logs
|
|
24
|
+
logs/
|
|
25
|
+
*.log
|
|
26
|
+
npm-debug.log*
|
|
27
|
+
yarn-debug.log*
|
|
28
|
+
yarn-error.log*
|
|
29
|
+
lerna-debug.log*
|
|
30
|
+
|
|
31
|
+
# OS files
|
|
32
|
+
.DS_Store
|
|
33
|
+
Thumbs.db
|
|
34
|
+
|
|
35
|
+
# Editor directories
|
|
36
|
+
.vscode/
|
|
37
|
+
.idea/
|
|
38
|
+
*.swp
|
|
39
|
+
*.swo
|
|
40
|
+
*~
|
|
41
|
+
|
|
42
|
+
# Claude Code per-machine config
|
|
43
|
+
/.claude/settings.local.json
|
|
44
|
+
|
|
45
|
+
# UKit generated files
|
|
46
|
+
.claude/ukit/.ukit/
|
|
47
|
+
.claude/ukit/permission-usage.json
|
|
48
|
+
.claude/ukit/permission-audit.log
|
|
49
|
+
.cache/
|
|
50
|
+
.antigravity/
|
|
51
|
+
.claude/
|
|
52
|
+
.codex/
|
|
53
|
+
.ukit/
|
|
54
|
+
opencode.json
|
|
55
|
+
AGENTS.md
|
|
56
|
+
CLAUDE.md
|
|
57
|
+
.codex/settings.local.json
|
|
58
|
+
|
|
59
|
+
# Keep tracked template hook sources under templates/.claude/hooks/
|
|
60
|
+
!.claude/
|
|
61
|
+
!.claude/hooks/
|
|
62
|
+
!.claude/hooks/skill-router.sh
|
|
63
|
+
!.claude/hooks/verification-guard.sh
|
|
64
|
+
!.claude/ukit/
|
|
65
|
+
!.claude/ukit/index/
|
|
66
|
+
!.claude/ukit/index/resolve-context.mjs
|
|
67
|
+
!.claude/ukit/index/verify-context.mjs
|
|
68
|
+
!.claude/ukit/index/route-task.mjs
|
|
69
|
+
!.codex/
|
|
70
|
+
!.codex/README.md
|
|
71
|
+
!.codex/settings.json
|
|
72
|
+
|
|
73
|
+
# Database
|
|
74
|
+
*.sqlite
|
|
75
|
+
*.db
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# AGENTS.md — {{project.name}}
|
|
2
|
+
|
|
3
|
+
## Core UKit Rule
|
|
4
|
+
|
|
5
|
+
- Human-facing workflow should optimize for one remembered command: `ukit install`.
|
|
6
|
+
- After install, normal work should feel natural inside **Claude/Codex/OpenCode** (and Antigravity when installed).
|
|
7
|
+
- Quality first, then speed, then token discipline: do not waste reads, logs, or repeated helper output.
|
|
8
|
+
|
|
9
|
+
## Fast Task Classification
|
|
10
|
+
|
|
11
|
+
- **Trivial** — typo, label, rename nhỏ, spacing, toggle flag, obvious config change.
|
|
12
|
+
- Act directly. No doc reads. No planning.
|
|
13
|
+
- **Simple** — 1-2 files, clear scope, existing pattern.
|
|
14
|
+
- Handle directly. Pull only the smallest useful context.
|
|
15
|
+
- **Non-trivial / Risky** — auth, security, migration, uninstall, shared runtime, race/flaky, data-loss.
|
|
16
|
+
- Read deeper, verify harder, and avoid shortcuts.
|
|
17
|
+
|
|
18
|
+
## Automatic Skill Activation (mandatory)
|
|
19
|
+
|
|
20
|
+
- End users should not need to know skill names.
|
|
21
|
+
- For every non-trivial task — and again after the first relevant tool calls — inspect installed project-local skills and **auto-activate the matching skill immediately**.
|
|
22
|
+
- Match from both prompt wording and tool/file evidence.
|
|
23
|
+
- Use the smallest effective set, usually 1-2 skills.
|
|
24
|
+
- If the prompt/tool signals point to docs work, use `.claude/skills/docs-quality/SKILL.md` when present.
|
|
25
|
+
- If evidence becomes more specific than the original prompt, upgrade the active skill choice immediately.
|
|
26
|
+
- Prefer routed, compact context before widening manual reads.
|
|
27
|
+
|
|
28
|
+
### Common skill triggers
|
|
29
|
+
|
|
30
|
+
- review / audit / diff / PR feedback → `.claude/skills/code-review/SKILL.md`
|
|
31
|
+
- bug / error / crash / triage / failing path → `.claude/skills/debugging-toolkit/SKILL.md`
|
|
32
|
+
- test / spec / coverage / fixture → `.claude/skills/testing-quality/SKILL.md`
|
|
33
|
+
- docs / README / changelog / handoff / editing `docs/` → `.claude/skills/docs-quality/SKILL.md`
|
|
34
|
+
- auth / security / token / permission / validation / risky shell-path-delete-db work → `.claude/skills/discover-security/SKILL.md`
|
|
35
|
+
- stale workspace / reinstall / cleanup / maintenance → `.claude/skills/repo-maintenance/SKILL.md`
|
|
36
|
+
|
|
37
|
+
## Internal Helper Routing
|
|
38
|
+
|
|
39
|
+
- If routing is complex or ambiguous, prefer the canonical helper first: `node .claude/ukit/index/route-task.mjs "<prompt>" [--tool-command <cmd>] [--target <file>]`.
|
|
40
|
+
- If context is needed, prefer `node .claude/ukit/index/resolve-context.mjs ...`.
|
|
41
|
+
- If a concrete verification lane is needed, prefer `node .claude/ukit/index/verify-context.mjs ...`.
|
|
42
|
+
- These helper/index commands are internal orchestration. Run them yourself when needed; never turn them into required end-user workflow.
|
|
43
|
+
|
|
44
|
+
## UKit v1.1.6 Shared Runtime
|
|
45
|
+
|
|
46
|
+
- Shared runtime state lives in `.ukit/storage/`.
|
|
47
|
+
- Treat `.ukit/storage/config.json` as the source of runtime toggles for compact, token pipeline, router, memory, and validation behavior.
|
|
48
|
+
- Reuse `.ukit/storage/memory/` before asking users to restate prior decisions.
|
|
49
|
+
- For non-trivial work, prefer `ukit memory recall "<current task>"` before widening doc reads.
|
|
50
|
+
- Reusable runtime cache lives in `.ukit/storage/cache/prompt-cache.json`, `.ukit/storage/cache/compact-history.json`, and `.ukit/storage/cache/output-history.json`.
|
|
51
|
+
- Shared route memory lives in `.claude/ukit/skill-router-state.json`.
|
|
52
|
+
- If shared route state already includes compact `previous-context` or `recent-output` lines, reuse those first before rescanning memory or replaying noisy logs.
|
|
53
|
+
- If an older repo still has a visible `ukit/` runtime root, rerun `ukit install`; UKit should migrate the shared runtime into hidden `.ukit/` when safe.
|
|
54
|
+
- Maintainers can inspect runtime state with `ukit status` and `ukit memory export`, but normal teammates should still only need `ukit install`.
|
|
55
|
+
- If runtime files are missing/corrupt, tell maintainers to rerun `ukit install`.
|
|
56
|
+
|
|
57
|
+
## Context + Verification Budget
|
|
58
|
+
|
|
59
|
+
- **Trivial**: no docs, no index query unless the file target is unclear.
|
|
60
|
+
- **Simple**: default to `docs/MEMORY.md` only; pull related files/tests with the resolver.
|
|
61
|
+
- **Non-trivial**: read `docs/MEMORY.md` + `docs/PROJECT.md` + `docs/CODE_MAP.md`.
|
|
62
|
+
- `docs/WORKLOG.md`: only recent, relevant entries for continuation/debugging.
|
|
63
|
+
- Follow routed verification policy: targeted first when localized, widen in order for shared/risky scope, ask before blanket broad runs when no related-test evidence exists.
|
|
64
|
+
|
|
65
|
+
## Subagent Policy (internal only)
|
|
66
|
+
|
|
67
|
+
- Default to direct execution for trivial/simple work.
|
|
68
|
+
- Delegate only when it clearly reduces context bloat or enables useful parallel progress.
|
|
69
|
+
- Good delegation triggers:
|
|
70
|
+
- noisy side lanes (broad logs/search/test output)
|
|
71
|
+
- 3+ independent failures/files/checks
|
|
72
|
+
- explicit batch/plan execution
|
|
73
|
+
- broad implementation/debug lanes that can return a concise summary
|
|
74
|
+
- If route memory already includes `delegate=<lane>`, treat it as an internal hint after any required indexed-context step.
|
|
75
|
+
- Do not ask end users to name agents or remember agent commands.
|
|
76
|
+
|
|
77
|
+
## Team Workflow Safety
|
|
78
|
+
|
|
79
|
+
- Do not teach normal contributors `ukit doctor`, `ukit diff`, `ukit uninstall`, or `ukit index ...` unless they are explicitly debugging UKit itself.
|
|
80
|
+
- If the workspace needs a refresh, prefer telling them to rerun `ukit install`.
|
|
81
|
+
- Keep scope tight, prefer the smallest correct change set, reuse existing code, and update docs when source changes.
|
|
82
|
+
|
|
83
|
+
## Environment Snapshot
|
|
84
|
+
|
|
85
|
+
- Project name: {{project.name}}
|
|
86
|
+
- Detected packs: {{project.stack}}
|
|
87
|
+
- Frontend detected: {{stack.frontend}}
|
|
88
|
+
- Backend API detected: {{stack.backendApi}}
|
|
89
|
+
- PostgreSQL detected: {{stack.postgres}}
|
|
90
|
+
- Package manager: {{runtime.packageManager}}
|
|
91
|
+
|
|
92
|
+
## Skills
|
|
93
|
+
|
|
94
|
+
- Canonical skills live in `.claude/skills/`.
|
|
95
|
+
- Adapter mirrors may also exist, for example `.antigravity/skills/`.
|
|
96
|
+
- OpenCode reads `AGENTS.md` plus the canonical `.claude/skills/` tree, so UKit keeps the OpenCode adapter lean and avoids a duplicate `.opencode/skills/` mirror.
|
|
97
|
+
- If `opencode.json` ships `ukit-*` commands, treat them as internal helper entrypoints only and **never ask end users to run them**; humans should still only need `ukit install`.
|
|
98
|
+
|
|
99
|
+
## DuraOne Skill — Conditional Activation
|
|
100
|
+
|
|
101
|
+
DuraOne skill chỉ active khi pack `duraone` được cài hoặc `.claude/skills/duraone/SKILL.md` tồn tại.
|
|
102
|
+
|
|
103
|
+
- Khi active: đọc `.claude/skills/duraone/SKILL.md` trước khi code.
|
|
104
|
+
- References:
|
|
105
|
+
- `.claude/skills/duraone/references/frontend.md`
|
|
106
|
+
- `.claude/skills/duraone/references/backend.md`
|
|
107
|
+
- `.claude/skills/duraone/references/sql.md`
|
|
108
|
+
- `.claude/skills/duraone/references/workflow.md`
|
|
109
|
+
- Khi không active: dùng generic coding standards + project patterns từ index.
|
|
110
|
+
|
|
111
|
+
## Completion Checklist
|
|
112
|
+
|
|
113
|
+
- Requirements implemented
|
|
114
|
+
- No unrelated changes
|
|
115
|
+
- Verification executed and reported
|
|
116
|
+
- Docs updated when source truth changed
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# CLAUDE.md — {{project.name}}
|
|
2
|
+
|
|
3
|
+
## Core Rule
|
|
4
|
+
|
|
5
|
+
- Human-facing UKit workflow should collapse to one remembered command: `ukit install`.
|
|
6
|
+
- After install, default to natural-language work inside Claude/Codex.
|
|
7
|
+
- Optimize for output quality first, then speed, then token discipline.
|
|
8
|
+
|
|
9
|
+
## Fast Classification
|
|
10
|
+
|
|
11
|
+
- **Trivial**: act directly, no doc reads, no agents.
|
|
12
|
+
- **Simple**: keep scope tight; use the smallest useful context.
|
|
13
|
+
- **Non-trivial / Risky**: read deeper, verify harder, and avoid shortcuts.
|
|
14
|
+
|
|
15
|
+
## Automatic Skill Activation (mandatory)
|
|
16
|
+
|
|
17
|
+
- End users should not need to know skill names.
|
|
18
|
+
- On every non-trivial task — and again after the first relevant tool calls — inspect installed project-local skills and **auto-activate the matching skill immediately**.
|
|
19
|
+
- Match from prompt signals plus tool/file evidence.
|
|
20
|
+
- Use the smallest useful set.
|
|
21
|
+
- If docs work is detected, read `.claude/skills/docs-quality/SKILL.md` when present.
|
|
22
|
+
- Prefer routed context and routed verification over ad-hoc broad reading.
|
|
23
|
+
- Reuse `.claude/ukit/skill-router-state.json` when it already carries compact route memory.
|
|
24
|
+
- If shared route state already includes `previous-context` or `recent-output`, reuse those first.
|
|
25
|
+
|
|
26
|
+
### Common skill triggers
|
|
27
|
+
|
|
28
|
+
- review / audit / diff → `.claude/skills/code-review/SKILL.md`
|
|
29
|
+
- bug / error / crash / triage → `.claude/skills/debugging-toolkit/SKILL.md`
|
|
30
|
+
- test / spec / coverage → `.claude/skills/testing-quality/SKILL.md`
|
|
31
|
+
- docs / README / changelog / handoff / editing `docs/` → `.claude/skills/docs-quality/SKILL.md`
|
|
32
|
+
- auth / security / token / permission / validation → `.claude/skills/discover-security/SKILL.md`
|
|
33
|
+
- stale workspace / reinstall / cleanup → `.claude/skills/repo-maintenance/SKILL.md`
|
|
34
|
+
|
|
35
|
+
## Internal Helper Policy
|
|
36
|
+
|
|
37
|
+
- Prefer `node .claude/ukit/index/route-task.mjs ...` when routing is complex.
|
|
38
|
+
- Prefer `node .claude/ukit/index/resolve-context.mjs ...` for indexed related-file context.
|
|
39
|
+
- Prefer `node .claude/ukit/index/verify-context.mjs ...` for concrete verification lanes.
|
|
40
|
+
- **Do not ask normal contributors to run internal helper commands**; run them yourself or tell them to rerun `ukit install`.
|
|
41
|
+
- Do not ask normal contributors to memorize `ukit doctor`, `ukit diff`, `ukit uninstall`, or `ukit index ...` unless they explicitly need maintainer/debug help.
|
|
42
|
+
|
|
43
|
+
## UKit v1.1.6 Shared Runtime
|
|
44
|
+
|
|
45
|
+
- Shared runtime state lives in `.ukit/storage/`.
|
|
46
|
+
- Treat `.ukit/storage/config.json` as the source of runtime toggles for compact, token pipeline, router, memory, and validation behavior.
|
|
47
|
+
- Reuse `.ukit/storage/memory/` before asking users to restate decisions.
|
|
48
|
+
- For non-trivial work, prefer `ukit memory recall "<current task>"` before widening doc reads.
|
|
49
|
+
- Reusable cache/compact/output state lives in `.ukit/storage/cache/prompt-cache.json`, `.ukit/storage/cache/compact-history.json`, and `.ukit/storage/cache/output-history.json`.
|
|
50
|
+
- If an older repo still has a visible `ukit/` runtime root, rerun `ukit install`; UKit should migrate the shared runtime into hidden `.ukit/` when safe.
|
|
51
|
+
- Maintainers can inspect runtime state with `ukit status` and `ukit memory export`.
|
|
52
|
+
- If runtime files are missing or corrupt, tell maintainers to rerun `ukit install`.
|
|
53
|
+
|
|
54
|
+
## Context + Verification Budget
|
|
55
|
+
|
|
56
|
+
- **Trivial**: no docs.
|
|
57
|
+
- **Simple**: `docs/MEMORY.md` only, plus resolver-selected files/tests.
|
|
58
|
+
- **Non-trivial**: `docs/MEMORY.md` + `docs/PROJECT.md` + `docs/CODE_MAP.md`.
|
|
59
|
+
- `docs/WORKLOG.md`: only recent relevant entries.
|
|
60
|
+
- Follow routed verification policy: targeted first, widen only when risk/shared scope justifies it, ask before blanket broad runs.
|
|
61
|
+
|
|
62
|
+
## Selective Subagent Policy (internal only)
|
|
63
|
+
|
|
64
|
+
- Keep direct execution as the default for trivial/simple work.
|
|
65
|
+
- Delegate only when it meaningfully shrinks context or enables useful parallel progress.
|
|
66
|
+
- Good delegation triggers: noisy research/log lanes, 3+ independent failures, explicit batch execution, or a broad debug/implementation lane with a clean handoff.
|
|
67
|
+
- If route memory includes `delegate=<lane>`, treat it as an internal hint after any required indexed-context step.
|
|
68
|
+
|
|
69
|
+
## Project Snapshot
|
|
70
|
+
|
|
71
|
+
- Project: {{project.name}} | Root: {{project.root}}
|
|
72
|
+
- Packs: {{project.stack}} | Frontend: {{stack.frontend}} | Backend API: {{stack.backendApi}} | PostgreSQL: {{stack.postgres}}
|
|
73
|
+
- Package manager: {{runtime.packageManager}} | OS: {{runtime.os}} | Node: {{runtime.nodeVersion}} | Provider: {{providers.unic}}
|
|
74
|
+
|
|
75
|
+
## Working Rules
|
|
76
|
+
|
|
77
|
+
- Keep scope tight.
|
|
78
|
+
- Reuse existing code.
|
|
79
|
+
- Update `docs/WORKLOG.md` after significant work.
|
|
80
|
+
- If source contradicts docs, update docs immediately.
|
|
81
|
+
- Use `{{runtime.packageManager}}`.
|
|
82
|
+
|
|
83
|
+
## DuraOne Skill — Conditional Activation
|
|
84
|
+
|
|
85
|
+
DuraOne skill chỉ active khi pack `duraone` được cài hoặc `.claude/skills/duraone/SKILL.md` tồn tại.
|
|
86
|
+
|
|
87
|
+
- Khi active: luôn đọc `.claude/skills/duraone/SKILL.md` trước khi code.
|
|
88
|
+
- References:
|
|
89
|
+
- `.claude/skills/duraone/references/frontend.md`
|
|
90
|
+
- `.claude/skills/duraone/references/backend.md`
|
|
91
|
+
- `.claude/skills/duraone/references/sql.md`
|
|
92
|
+
- `.claude/skills/duraone/references/workflow.md`
|
|
93
|
+
- Khi không active: dùng generic coding standards + project-specific patterns từ index.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# {{project.name}}
|
|
2
|
+
|
|
3
|
+
Auto-generated by UKit for Google Antigravity.
|
|
4
|
+
|
|
5
|
+
- Packs: {{project.stack}}
|
|
6
|
+
- Package manager: {{runtime.packageManager}}
|
|
7
|
+
|
|
8
|
+
## Start
|
|
9
|
+
Use graduated doc budget:
|
|
10
|
+
- Trivial: no docs
|
|
11
|
+
- Simple: `docs/MEMORY.md`
|
|
12
|
+
- Non-trivial: `docs/MEMORY.md` + `docs/PROJECT.md` + `docs/CODE_MAP.md`
|
|
13
|
+
- `docs/WORKLOG.md`: recent relevant entries only
|
|
14
|
+
|
|
15
|
+
If routing is complex/ambiguous, use:
|
|
16
|
+
- `node .antigravity/ukit/index/route-task.mjs "<prompt>" [--tool-command <cmd>] [--target <file>]`
|
|
17
|
+
|
|
18
|
+
Routing uses natural-language intent (fix/review/brainstorm/build/test/docs).
|
|
19
|
+
If confidence is low, ask one short clarifying question.
|
|
20
|
+
|
|
21
|
+
## Skills
|
|
22
|
+
Skills are shared from `.claude/skills/` via symlink. Each skill folder contains `SKILL.md`.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Project Rules — {{project.name}}
|
|
2
|
+
|
|
3
|
+
Auto-generated by UKit. Edit `.claude/` sources to update.
|
|
4
|
+
|
|
5
|
+
## Core policy
|
|
6
|
+
|
|
7
|
+
- Natural language only; do not require slash commands or skill names.
|
|
8
|
+
- If helper/index commands are needed, run them internally and never ask users to run them.
|
|
9
|
+
- Quality first, keep latency low, avoid repeated token waste.
|
|
10
|
+
- Reuse shared route state from `.claude/ukit/skill-router-state.json`. If it already carries compact `previous-context` or `recent-output` lines, use those before widening docs, memory, or raw logs.
|
|
11
|
+
- Shared runtime lives in `.ukit/storage/`. Reuse `.ukit/storage/memory/`, `.ukit/storage/cache/compact-pressure.json`, `.ukit/storage/cache/output-history.json`, and `.ukit/storage/cache/tee/` before asking users to restate context.
|
|
12
|
+
|
|
13
|
+
## Route fast
|
|
14
|
+
|
|
15
|
+
- `fix/bug/error/debug/lỗi/sửa` → fix lane
|
|
16
|
+
- `review/audit/check/soát code` → review lane
|
|
17
|
+
- `brainstorm/idea/design/plan` → design lane
|
|
18
|
+
- `build/implement/add/create` → build lane
|
|
19
|
+
- `clone/copy/similar/giống/tương tự` → follow-pattern lane
|
|
20
|
+
- `test/spec/coverage` → test lane
|
|
21
|
+
- `docs/readme/changelog/tài liệu` → docs lane
|
|
22
|
+
- If intent is ambiguous, ask one short clarifying question.
|
|
23
|
+
- If routing is complex or shared route memory needs refresh, run `node .antigravity/ukit/index/route-task.mjs "<prompt>" [--tool-command <cmd>] [--target <file>]`.
|
|
24
|
+
|
|
25
|
+
## Skill + context loop
|
|
26
|
+
|
|
27
|
+
- Auto-activate the smallest useful installed skill set from prompt + tool/file evidence.
|
|
28
|
+
- Prefer `node .antigravity/ukit/index/resolve-context.mjs "<intent>" [--target <file>]` after choosing a skill.
|
|
29
|
+
- Prefer `node .antigravity/ukit/index/verify-context.mjs "<intent>" [--target <file>]` for verification planning.
|
|
30
|
+
|
|
31
|
+
## Indexed reading + verification
|
|
32
|
+
|
|
33
|
+
- Trivial: no docs, 1-2 files, minimal verify.
|
|
34
|
+
- Simple: `docs/MEMORY.md` only, 2-5 files, targeted verify.
|
|
35
|
+
- Non-trivial/risky: `docs/MEMORY.md` + `docs/PROJECT.md` + `docs/CODE_MAP.md`, broader verify.
|
|
36
|
+
- `docs/WORKLOG.md`: recent relevant entries only.
|
|
37
|
+
- Clone/follow-pattern: open at least 1 analog file.
|
|
38
|
+
- Shared logic: open the shared abstraction.
|
|
39
|
+
- Bug with tests: open related test first.
|
|
40
|
+
- If broad verification is blocked because targeted verification was skipped, go back to the routed targeted lane first.
|
|
41
|
+
- For bugfix tasks, run index-first triage: `node .antigravity/ukit/index/build-index.mjs` then `node .antigravity/ukit/index/triage.mjs "<error signature>"`, inspect top suspects, then widen only if needed.
|
|
42
|
+
|
|
43
|
+
## Safety
|
|
44
|
+
|
|
45
|
+
- Package manager: `{{runtime.packageManager}}`.
|
|
46
|
+
- Keep scope tight and prefer existing code paths.
|
|
47
|
+
- Update `docs/WORKLOG.md`, `docs/MEMORY.md`, `docs/CODE_MAP.md`, or `docs/PROJECT.md` after significant work when relevant.
|
|
48
|
+
- Never edit `.env*`, lock files, `.git/`, or `node_modules/`.
|
|
49
|
+
- Never run destructive commands without explicit confirmation.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(docker:*)",
|
|
5
|
+
"Bash(curl:*)",
|
|
6
|
+
"Bash(python3:*)",
|
|
7
|
+
"Bash(cat:*)",
|
|
8
|
+
"Bash(go:*)",
|
|
9
|
+
"Bash(yarn:*)",
|
|
10
|
+
"Bash(pnpm:*)",
|
|
11
|
+
"Bash(npm:*)",
|
|
12
|
+
"Bash(wc:*)",
|
|
13
|
+
"Bash(jq:*)",
|
|
14
|
+
"Bash(head:*)",
|
|
15
|
+
"Bash(cut:*)",
|
|
16
|
+
"Bash(time curl:*)",
|
|
17
|
+
"Bash(sleep:*)",
|
|
18
|
+
"Bash(git:*)",
|
|
19
|
+
"Bash(echo:*)",
|
|
20
|
+
"Bash(find:*)",
|
|
21
|
+
"Bash(grep:*)",
|
|
22
|
+
"Bash(rg:*)",
|
|
23
|
+
"Bash(test:*)",
|
|
24
|
+
"Bash(lsof:*)",
|
|
25
|
+
"Bash(tail:*)",
|
|
26
|
+
"Bash(bash:*)",
|
|
27
|
+
"Bash(chmod:*)",
|
|
28
|
+
"WebFetch(domain:docs.anthropic.com)",
|
|
29
|
+
"WebFetch(domain:dev.to)",
|
|
30
|
+
"WebFetch(domain:www.reddit.com)",
|
|
31
|
+
"WebFetch(domain:www.steveruiz.me)",
|
|
32
|
+
"WebFetch(domain:desktopcommander.com)",
|
|
33
|
+
"WebFetch(domain:gist.github.com)",
|
|
34
|
+
"WebFetch(domain:opencodedocs.com)",
|
|
35
|
+
"WebFetch(domain:zenn.dev)",
|
|
36
|
+
"WebFetch(domain:github.com)",
|
|
37
|
+
"WebFetch(domain:gist.githubusercontent.com)",
|
|
38
|
+
"Bash(./run.sh:*)",
|
|
39
|
+
"Bash(ls:*)"
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"$schema":"https://opencode.ai/config.json","default_agent":"build","share":"disabled","compaction":{"auto":true,"prune":true,"reserved":10000},"watcher":{"ignore":[".git/**","node_modules/**",".cache/**",".claude/ukit/.ukit/**",".claude/ukit/permission-usage.json",".claude/ukit/permission-audit.log"]},"permission":{"doom_loop":"deny"},"command":{"ukit-route":{"description":"Internal shared UKit route.","agent":"build","template":"Run `node .claude/ukit/index/route-task.mjs \"<task>\" --adapter opencode`; reuse `.claude/ukit/skill-router-state.json`."},"ukit-context":{"description":"Internal UKit context.","agent":"build","template":"Run `node .claude/ukit/index/resolve-context.mjs \"<intent>\" [--target <file>]`."},"ukit-verify":{"description":"Internal UKit verify lane.","agent":"build","template":"Run `node .claude/ukit/index/verify-context.mjs \"<intent>\" [--target <file>]`."},"ukit-triage":{"description":"Internal UKit triage.","agent":"build","template":"Run `node .claude/ukit/index/triage.mjs \"<error>\"`."},"ukit-query":{"description":"Internal UKit query.","agent":"build","template":"Run `node .claude/ukit/index/query-index.mjs \"<error|symbol|path>\"`."},"ukit-index":{"description":"Internal UKit index.","agent":"build","template":"Run `node .claude/ukit/index/refresh-index.mjs` (fallback: `node .claude/ukit/index/build-index.mjs`)."}},"agent":{"build":{"description":"UKit coding agent; keep internal helpers hidden, users only need ukit install.","permission":{"edit":"allow","task":"allow","skill":"allow","bash":{"*":"ask","pwd":"allow","ls":"allow","ls *":"allow","find *":"allow","rg *":"allow","grep *":"allow","cat *":"allow","sed *":"allow","head *":"allow","tail *":"allow","wc *":"allow","git status":"allow","git status *":"allow","git diff":"allow","git diff *":"allow","git log":"allow","git log *":"allow","git show *":"allow","git grep *":"allow","git rev-parse *":"allow","node .claude/ukit/index/*":"allow","{{runtime.packageManager}} test":"allow","{{runtime.packageManager}} test *":"allow","{{runtime.packageManager}} lint":"allow","{{runtime.packageManager}} lint *":"allow","{{runtime.packageManager}} typecheck":"allow","{{runtime.packageManager}} typecheck *":"allow","{{runtime.packageManager}} build":"allow","{{runtime.packageManager}} build *":"allow","npm run test":"allow","npm run test *":"allow","npm run lint":"allow","npm run lint *":"allow","npm run typecheck":"allow","npm run typecheck *":"allow","npm run build":"allow","npm run build *":"allow","git commit":"ask","git commit *":"ask","git push":"ask","git push *":"ask","git clean":"deny","git clean *":"deny","git reset":"deny","git reset *":"deny","rm *":"deny"}}},"plan":{"permission":{"edit":"ask","bash":"ask"}}}}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Bugfix SOP (Index-First)
|
|
2
|
+
|
|
3
|
+
## Objective
|
|
4
|
+
Giảm thời gian fix bug bằng cách ưu tiên bằng chứng + index codebase trước khi đọc sâu docs/source.
|
|
5
|
+
|
|
6
|
+
## Required Commands
|
|
7
|
+
- `node .claude/ukit/index/build-index.mjs`
|
|
8
|
+
- `node .claude/ukit/index/query-index.mjs "<error|symbol|path>"`
|
|
9
|
+
- `node .claude/ukit/index/triage.mjs "<error signature>"`
|
|
10
|
+
|
|
11
|
+
## Decision Tree
|
|
12
|
+
1. Có repro command rõ ràng -> chạy triage index.
|
|
13
|
+
2. Lane fast: mở tối đa 1-3 suspect files, patch nhỏ, verify test mục tiêu.
|
|
14
|
+
3. Fail 2 vòng 15 phút liên tiếp -> chuyển lane deep.
|
|
15
|
+
4. Lane deep: instrumentation + root-cause tracing trước khi sửa.
|
|
16
|
+
|
|
17
|
+
## Hard Rules
|
|
18
|
+
- Không sửa khi chưa có evidence (failing test / stack trace / logs).
|
|
19
|
+
- Không refactor lớn trong bug ticket.
|
|
20
|
+
- Verify tối thiểu: test fail ban đầu + test liên quan.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Bug Intake Template
|
|
2
|
+
|
|
3
|
+
- Title:
|
|
4
|
+
- Priority: P0/P1/P2/P3
|
|
5
|
+
- Repro command:
|
|
6
|
+
- Expected vs Actual:
|
|
7
|
+
- Error signature:
|
|
8
|
+
- Stack trace excerpt:
|
|
9
|
+
- Index triage output (`node .claude/ukit/index/triage.mjs "..."`):
|
|
10
|
+
- Suspect files (top 3):
|
|
11
|
+
- Lane (fast/deep):
|
|
12
|
+
- Hypothesis:
|
|
13
|
+
- Verify commands:
|