@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
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to UKit are documented here.
|
|
4
|
+
|
|
5
|
+
## Unreleased
|
|
6
|
+
|
|
7
|
+
## 1.1.6 - 2026-04-23
|
|
8
|
+
|
|
9
|
+
### Hidden Runtime Root
|
|
10
|
+
|
|
11
|
+
- Moved the shared runtime install target from visible `ukit/` to hidden `.ukit/` so end-user projects no longer see a confusing extra root folder beside `.claude/ukit/`.
|
|
12
|
+
- Kept `.claude/ukit/` for installed helper/index/hook machinery and installer metadata, instead of mixing mutable runtime storage into that helper tree.
|
|
13
|
+
- Added safe reinstall migration so rerunning `ukit install` moves legacy runtime assets from `ukit/README.md` and `ukit/storage/` into `.ukit/` when the new target paths are free, without force-overwriting newer state.
|
|
14
|
+
- Preserved conservative legacy cleanup: unknown user files under old `ukit/` still survive, and the old root is removed only when it becomes empty after migration/cleanup.
|
|
15
|
+
- Updated manifest targets, gitignore/uninstall ownership handling, current docs, and release/package smoke expectations to align on the new hidden runtime root.
|
|
16
|
+
- Promoted the current runtime/version surfaces to `@ngockhoale/ukit@1.1.6` while keeping the same `ukit` binary and the same install-first teammate workflow.
|
|
17
|
+
|
|
18
|
+
## 1.1.5 - 2026-04-23
|
|
19
|
+
|
|
20
|
+
### Owned-Scope npm Distribution Alignment
|
|
21
|
+
|
|
22
|
+
- Realigned the published npm package name from `@ukit/cli` to `@ngockhoale/ukit` so release distribution uses a maintainer-owned scope that can actually publish today.
|
|
23
|
+
- Kept the installed CLI binary name as `ukit`, so the human-facing workflow inside projects remains exactly the same: teammates still only need `ukit install`.
|
|
24
|
+
- Preserved the existing GitHub `v1.1.4` release history and cut the package-identity change as a clean follow-up patch release instead of rewriting an already-pushed tag.
|
|
25
|
+
- Updated current install/documentation surfaces to point maintainers at `npm install -g @ngockhoale/ukit` while keeping UKit’s install-first product contract unchanged.
|
|
26
|
+
|
|
27
|
+
## 1.1.4 - 2026-04-23
|
|
28
|
+
|
|
29
|
+
### Recovery-Safe Output Compaction
|
|
30
|
+
|
|
31
|
+
- Added recovery-safe output compaction on top of the existing command-aware compression lane instead of introducing a second output/history subsystem.
|
|
32
|
+
- Preserved raw tool output in `ukit/storage/cache/tee/` for high-value recovery cases such as failed commands, large raw outputs, or unusually high token savings.
|
|
33
|
+
- Extended output-history entries with recovery metadata (`rawSaved`, `rawPath`, `rawBytes`, `recoveryReason`) so routed/runtime consumers can reuse the same shared artifact instead of rerunning noisy commands blindly.
|
|
34
|
+
- Appended a compact `Full output:` recovery hint only when it still preserves net token savings; when it would erase the savings, UKit still keeps the raw artifact and metadata without bloating the inline summary.
|
|
35
|
+
- Kept source runtime behavior and shipped Claude hook behavior aligned for recovery-safe compaction, including prompt-cache reuse of recovery metadata and history dedupe that ignores the recovery-hint line.
|
|
36
|
+
- Extended `ukit status` output-compression reporting to show recovery counts so maintainers can see when the runtime preserved raw evidence in addition to saving tokens.
|
|
37
|
+
- Updated shared runtime docs/version surfaces to reflect the new v1.1.4 recovery-safe compaction lane while keeping the teammate workflow centered on `ukit install`.
|
|
38
|
+
|
|
39
|
+
## 1.1.3 - 2026-04-22
|
|
40
|
+
|
|
41
|
+
### Vietnamese-friendly retrieval + routing hardening
|
|
42
|
+
|
|
43
|
+
- Added shared Unicode-aware query normalization so Vietnamese prompts can match English-heavy code paths and symbols more reliably without forcing users to switch to English.
|
|
44
|
+
- Added compact Vietnamese alias expansion for routing/search intent (for example review/auth/permission/cache/route-style terms) in both source runtime and shipped installed helpers.
|
|
45
|
+
- Hardened shared route scoring so normalized prompt signals improve skill selection without leaking prompt aliases into unrelated file-signal matches.
|
|
46
|
+
- Kept installed Claude/Codex hook/helper behavior aligned with the source runtime, including safe fallback behavior for hook/template test environments and legacy route-task stubs.
|
|
47
|
+
- Added regression coverage for Vietnamese retrieval/routing across source query/index, source task routing, installed route-task/query helpers, and the Claude skill-router hook.
|
|
48
|
+
- Added a simple direct-target fast path in shared `resolveContext` so when direct test context already localizes a simple/trivial change, UKit keeps the context bundle compact and skips widening into shared abstractions/analogs unless broader evidence is still needed.
|
|
49
|
+
- Skipped previous-context memory injection for localized simple/trivial route lanes with an explicit file target in both the installed `route-task` helper and the Claude `skill-router` hook, reducing unnecessary memory scanning on already-localized tasks while keeping non-trivial routes unchanged.
|
|
50
|
+
- Skipped recent-output snapshot reads for localized simple/trivial direct-target testing lanes in the installed `route-task` helper, so test-focused routes stop reading `ukit/storage/cache/output-history.json` when that compressed terminal context would not change the chosen next step.
|
|
51
|
+
- Reused the installed `route-task` verification environment snapshot when `package.json` already declares `packageManager`, so UKit no longer re-reads `package.json` or stats every lockfile candidate just to derive the same verification commands.
|
|
52
|
+
- Aligned the source verification planner and shipped `verify-context` helper with that same declared-`packageManager` fast path, so direct verification lanes also skip redundant lockfile fingerprint probes while reusing the parsed `package.json` snapshot.
|
|
53
|
+
- Applied the same declared-`packageManager` fingerprint fast path to the Claude `skill-router` hook and reused the parsed package snapshot for verification recommendations, removing another avoidable lockfile-probe burst from pure Claude flows.
|
|
54
|
+
|
|
55
|
+
## 1.1.2 - 2026-04-22
|
|
56
|
+
|
|
57
|
+
### Live compact + compress runtime slice
|
|
58
|
+
|
|
59
|
+
- Added real `src/core/token/`, `src/core/compact/`, and `src/core/output/` runtime modules so compact/compress are no longer config-only switches.
|
|
60
|
+
- Added a threshold-based compact pressure planner with soft/hard phases, hysteresis, cooldown reuse, and layered compact plans so long sessions can auto-compact near the configured context limit without flapping.
|
|
61
|
+
- Threshold compact memory-bridge output now dedupes bulky `Previous context` snapshots into compact anchors such as active task, key decision, rule, and next step instead of replaying the same context blob twice.
|
|
62
|
+
- `ukit memory recall` now uses live input compaction, prompt-cache reuse, and compaction-history metrics.
|
|
63
|
+
- Memory recall now tightens its own budget under compact pressure, preserving project anchors and key decisions while dropping lower-value extras when the runtime is already under hard pressure.
|
|
64
|
+
- Added a real Claude `PreCompact` runtime lane that re-injects compact routed context, previous shared memory context, and recent compressed command output from shared runtime cache.
|
|
65
|
+
- Added a Claude `PostToolUse` Bash output-compression hook that compresses noisy terminal output into reusable summaries under `ukit/storage/cache/output-history.json`.
|
|
66
|
+
- Added an automatic previous-context bridge in the installed `route-task` helper so Codex-routed flows can carry compact shared memory context in `.claude/ukit/skill-router-state.json` without relying on manual recall commands.
|
|
67
|
+
- Added a compact recent-output bridge in the installed `route-task` helper so Codex-routed flows can carry the latest compressed terminal summary into `.claude/ukit/skill-router-state.json` and invalidate reuse when that output snapshot changes.
|
|
68
|
+
- Added safe-zone terminal compression profiles for repeated search/file-list/tree/git output so UKit keeps anchor paths and test signals while dropping noisy repeated lines.
|
|
69
|
+
- Claude reinject now reuses that compact shared `previousContext` snapshot before rescanning `ukit/storage/memory/`, cutting duplicate memory retrieval work across Codex/Claude continuation flows while keeping the same safety fallback.
|
|
70
|
+
- Claude `skill-router` now persists compact shared `previousContext` snapshots earlier in `.claude/ukit/skill-router-state.json` and invalidates same-prompt reuse when that memory snapshot changes, so pure Claude flows also benefit from lower repeated memory drag before `PreCompact`.
|
|
71
|
+
- Updated shared adapter guidance so OpenCode (`AGENTS.md`) and Antigravity (`.antigravity/rules/rules.md`) reuse compact `previous-context` / `recent-output` snapshots from the shared route state before widening reads or replaying noisy logs.
|
|
72
|
+
- OpenCode and Antigravity guidance now also points both adapters at the canonical `node .claude/ukit/index/route-task.mjs ...` helper for complex/ambiguous routing so they can refresh the same shared route memory path Codex/Claude already use.
|
|
73
|
+
- OpenCode now ships native `opencode.json` command entrypoints for shared UKit route/context/index/query/verify/triage flows, pins `--adapter opencode`, and keeps those helpers internal so end users still only need `ukit install`.
|
|
74
|
+
- Shared `route-task` state now records the originating adapter (`claude`, `codex`, `antigravity`, `opencode`) so OpenCode/Claude continuations do not accidentally reuse the same cached route snapshot just because the task text matches.
|
|
75
|
+
- Antigravity can now call its native symlinked helper path (`node .antigravity/ukit/index/route-task.mjs ...`) and route/resolve/triage using `.antigravity/ukit/index/...` lanes instead of falling back to Claude-shaped helper paths.
|
|
76
|
+
- `verify-context` and maintainer `ukit index verify` output now compact repeated targeted test commands and verbose docs-only notes into shorter canonical display lines without changing verification policy.
|
|
77
|
+
- Memory recall / previous-context snippets now use compact canonical `project=...` / `session=...` display lines so agents spend fewer tokens on repeated prose while keeping decisions, rules, actions, and next steps visible.
|
|
78
|
+
- `ukit status` now surfaces prompt-cache and output-compression metrics so maintainers can see live savings instead of only static config toggles.
|
|
79
|
+
- Maintainer `release:verify` now defaults to a local `npm pack --dry-run --json` packaging check instead of hitting npmjs during the normal release-ready workflow.
|
|
80
|
+
|
|
81
|
+
## 1.1.0 - 2026-04-21
|
|
82
|
+
|
|
83
|
+
### Production-ready v1.1.0 runtime foundation
|
|
84
|
+
|
|
85
|
+
- Promoted UKit to **v1.1.0** with a shared project-local runtime at `ukit/` for config, cache, and cross-agent memory.
|
|
86
|
+
- Added maintainer-facing runtime commands:
|
|
87
|
+
- `ukit status`
|
|
88
|
+
- `ukit memory list|search|recall|forget|export`
|
|
89
|
+
- Hardened lifecycle commands around the new runtime:
|
|
90
|
+
- `ukit doctor` now validates `ukit/storage/` health and runtime config integrity
|
|
91
|
+
- uninstall now removes tracked runtime config/cache files under `ukit/` safely
|
|
92
|
+
- Updated installed Claude/Codex/AGENTS guidance so adapters know to reuse `ukit/storage/config.json`, `ukit/storage/memory/`, and the shared runtime cache files.
|
|
93
|
+
- Added a safe recall lane for non-trivial work: `ukit memory recall "<task>"` now prints a compact `## Previous Context` block from shared local memory before widening docs/context.
|
|
94
|
+
- Hardened recall before release so it stays inside the current project boundary and fails closed when `ukit/storage/config.json` is corrupted.
|
|
95
|
+
- Fixed publish packaging so the OpenCode adapter preset is included in the npm artifact even though `opencode.json` is globally gitignored in the repo.
|
|
96
|
+
|
|
97
|
+
## 1.0.1 - 2026-04-21
|
|
98
|
+
|
|
99
|
+
### Patch release
|
|
100
|
+
|
|
101
|
+
- Added **OpenCode** as a first-class optional coding adapter in the default `ukit install` surface.
|
|
102
|
+
- Kept the human workflow unchanged: teammates still only need to remember **`ukit install`**.
|
|
103
|
+
- Reused the canonical `AGENTS.md` + `.claude/skills/` workspace shape for OpenCode instead of generating a duplicate mirror tree, keeping the adapter leaner for production.
|
|
104
|
+
- Added a production-tuned managed `opencode.json` with:
|
|
105
|
+
- safe default build agent behavior
|
|
106
|
+
- compaction enabled
|
|
107
|
+
- noisy watcher paths ignored
|
|
108
|
+
- index/test/lint/build commands auto-allowed where safe
|
|
109
|
+
- destructive git/rm flows denied or forced through confirmation
|
|
110
|
+
- Extended adapter selection, gitignore management, uninstall ownership handling, docs, and integration coverage for the new OpenCode adapter.
|
|
111
|
+
- Re-verified the release lane after the patch with artifact smoke, full core suite, and `npm publish --dry-run`.
|
|
112
|
+
|
|
113
|
+
## 1.0.0 - 2026-04-16
|
|
114
|
+
|
|
115
|
+
### Product promise
|
|
116
|
+
|
|
117
|
+
- Teammates should remember only **`ukit install`** for normal in-project workflow.
|
|
118
|
+
- The same command handles first-time workspace setup and refresh inside a project.
|
|
119
|
+
- The AI should absorb the complexity: routing, hidden skill activation, context pulling, verification scope, and selective delegation.
|
|
120
|
+
|
|
121
|
+
### Core capabilities
|
|
122
|
+
|
|
123
|
+
- **Index-first code localization** so Claude Code, Codex, and Antigravity can find the right files/tests quickly without broad repo reads.
|
|
124
|
+
- **Automatic skill routing** from prompt + file/tool evidence, including hidden lanes such as Docker packaging and DuraOne.
|
|
125
|
+
- **Scoped verification** that prefers related tests and only widens when shared/risky scope justifies it.
|
|
126
|
+
- **Shared multi-adapter workspace** authored once and reused across Claude, Codex, and Antigravity.
|
|
127
|
+
|
|
128
|
+
### Release hardening
|
|
129
|
+
|
|
130
|
+
- Made index freshness **source-aware**, not just age-based:
|
|
131
|
+
- stale detection now rebuilds when indexed source/style files changed immediately after the last build
|
|
132
|
+
- symlinked source directories are deduplicated to avoid duplicate/cyclic indexing
|
|
133
|
+
- shipped helpers/mirror follow the same freshness rule after **`ukit install`**
|
|
134
|
+
- Broadened hidden index test handling for co-located `.test.mjs`, `.spec.mjs`, `.test.cjs`, and `.spec.cjs`, and kept likely test files out of normal query top matches unless the prompt explicitly asks for tests/specs.
|
|
135
|
+
- Tightened the Claude auto-allow hook so interpreter entrypoints (`node`, `python`, `bash`, etc.) are not silently whitelisted as generic safe Bash rules.
|
|
136
|
+
- Removed empty `frontend-vue` placeholder components from the shipped hidden skill bundle by replacing them with real reference wrappers for mobile dropdown and form-view usage.
|
|
137
|
+
- Cut one extra stale-path freshness reread from shipped index helpers by returning `generatedAtMs` directly from index rebuild summaries and reusing it after rebuild.
|
|
138
|
+
- Added packed-artifact smoke coverage proving the published npm tarball can:
|
|
139
|
+
- run `ukit install`
|
|
140
|
+
- ship working index helpers
|
|
141
|
+
- build the shipped index
|
|
142
|
+
- route Docker packaging work
|
|
143
|
+
- support default adapters
|
|
144
|
+
- support nested DuraOne monorepo activation
|
|
145
|
+
- Fixed index graph resolution for extensionless React-style internal imports (`.jsx`, `.tsx`, and directory `index.jsx` / `index.tsx`) so rerunning **`ukit install`** rebuilds correct relations/analogs in JSX/TSX projects too.
|
|
146
|
+
- Fixed source discovery for supported **symlinked source files** in both the repo runtime and the shipped installed mirror, so alias file paths inside the project remain indexed/searchable even when the real file lives elsewhere.
|
|
147
|
+
- Stopped `ukit install` from claiming success before the required source-code index actually finishes; if index build fails, the command now tells maintainers to fix the repo state and rerun **`ukit install`**.
|
|
148
|
+
- Slimmed the bundled hidden `canvas-design` asset lane to a curated built-in font set, cutting the published tarball from roughly **3.3 MB** to **1.5 MB** while preserving immediate post-install usability and the one-command `ukit install` workflow.
|
|
149
|
+
- Deduped the heavy hidden **OOXML** support bundle used by PPTX/DOCX into a shared installed lane, preserving the same skill paths after `ukit install` via symlinks and safely migrating previously managed real directories on reinstall.
|
|
150
|
+
- Hardened uninstall against stale tracked metadata under managed symlink roots: if old install records still mention descendants like `.claude/skills/pptx/ooxml/...` after the root became a tracked link, uninstall now removes only the tracked link and refuses to follow that symlink into the shared target bundle.
|
|
151
|
+
- Hardened reinstall migration for shared OOXML symlink targets so UKit only auto-replaces an old real directory when every nested path is still clearly UKit-managed; untracked empty subdirectories now block replacement instead of being silently deleted.
|
|
152
|
+
- Hardened reinstall migration again so even an **empty real directory** at a managed symlink target is treated as ambiguous user content; UKit now warns and keeps the directory instead of silently replacing it during `ukit install`.
|
|
153
|
+
- Hardened legacy reinstall cleanup so `ukit install` no longer deletes the whole old `ukit/.ukit/` directory tree; it now removes only the legacy `install.json` file and keeps any user files that may still live under that folder.
|
|
154
|
+
- Hardened legacy flat-file cleanup so paths like `.claude/skills/delivery.md` are removed only when they are actual files/symlinks; if a user has a real directory with the same legacy name, UKit now preserves it instead of recursively deleting it.
|
|
155
|
+
- Hardened adapter deselection metadata cleanup so removing a managed link path also removes stale tracked descendants under that path, preventing old `.antigravity/skills/...` or `.codex/skills/...` entries from lingering in install metadata after `ukit install --tools=...` changes.
|
|
156
|
+
- Hardened maintainer preview flows so `ukit diff` / dry-run install planning no longer delete a previously managed real directory before showing the preview; only the real install path may perform safe managed-directory replacement.
|
|
157
|
+
- Fixed index import resolution for **single-segment `baseUrl` imports** (for example `import { loadUser } from 'userApi'` with `baseUrl: "./src/services"`), in both the source runtime and the shipped installed mirror, so source-code indexing keeps relations/query ranking correct for that TypeScript layout too.
|
|
158
|
+
- Hardened adapter deselection safety again so UKit only prunes deselected adapter files when install metadata proves UKit actually owns them; a first `ukit install` no longer deletes a teammate’s pre-existing `.codex/.antigravity` files just because the adapter is currently deselected.
|
|
159
|
+
- Tightened deselection ownership handling so when adapter cleanup is skipped (non-interactive mode, user says no, or the path is a real directory), UKit immediately drops those deselected paths from install metadata instead of carrying stale ownership forward to uninstall.
|
|
160
|
+
- Restored **index-first routing** for prompt-only hybrid lanes where a standalone specialist (for example Docker packaging) is selected together with a real code skill; source runtime, shipped `route-task`, and the Claude `skill-router` hook now keep `resolve-context` available instead of falling straight to `read-skill-instructions`.
|
|
161
|
+
- Hardened fresh `ukit install` ownership handling against stray/non-UKit `install.json` files: obsolete-path pruning and metadata carry-forward now trust previous tracked files only when metadata proves the prior install was actually written by UKit, so a first install no longer deletes or inherits ownership of user files from foreign/stale metadata.
|
|
162
|
+
- Stopped tracking **skip-strategy bootstrap files** (for example `docs/PROJECT.md`, `docs/MEMORY.md`, `docs/WORKLOG.md`, `CLAUDE.md`, `AGENTS.md`, `.claude/settings.local.json`, `.codex/settings.local.json`) as uninstall-owned outputs, so UKit preserves team memory/local settings even when those files were first created by `ukit install`.
|
|
163
|
+
- Kept **test-like direct targets** targeted even when filenames omit `.test` / `.spec` (for example `tests/pages/LoginFlow.js`): source verification planning and shipped `resolve-context` / `verify-context` helpers now treat `tests/` / `specs/` targets as related tests instead of downgrading to minimal verification.
|
|
164
|
+
- Hardened source `deriveVerificationPlan(...)` again so callers that pass a precomputed/raw `contextResult` still normalize direct `tests/` / `specs/` primary targets into targeted verification; direct test files no longer fall back to `mode=minimal` just because `relatedTests` was not pre-expanded upstream.
|
|
165
|
+
- Fixed source + shipped index discovery so root-level **`specs/` / `spec/` / `test/` / `__tests__/`** lanes are scanned and treated consistently as likely tests; spec-root tests now feed `tests-map` / relations correctly and stay deprioritized in normal file search unless the prompt explicitly asks for tests/specs.
|
|
166
|
+
- Completed the root test-lane hardening so **root `test/`, `spec/`, and `__tests__/`** paths are recognized consistently across index build, query ranking, and direct test-target routing/verification heuristics in both source and shipped helpers.
|
|
167
|
+
- Aligned shipped helper cache keys with route-task seeding for **target-only helper invocations** (`--target ...` with no prompt text), so direct `resolve-context` / `verify-context` calls can reuse the route-seeded cache instead of recomputing indexed context.
|
|
168
|
+
- Reused relations/analogs safely for alias-based projects when code + alias config stay unchanged, reducing wasted rebuild work on repeated refreshes.
|
|
169
|
+
- Fixed package file modes so published regular files are readable and shipped hook/bin entrypoints stay executable in the npm artifact.
|
|
170
|
+
- Installed full hidden-skill companion bundles (references/scripts/assets) for default skill packs that need them, while keeping the teammate workflow unchanged: remember only **`ukit install`**.
|
|
171
|
+
- Cleared stale routed state when a later prompt has no matching skill, preventing old verification policies from leaking into unrelated work.
|
|
172
|
+
- Expanded explicit “full suite” verification intent detection so Vietnamese prompts like `chạy full test suite` are honored too.
|
|
173
|
+
- Hardened packaging for release-critical templates and adapter presets so publish artifacts match repo behavior.
|
|
174
|
+
- Added maintainer-facing production release checklist and completed the missing npm/GitHub release metadata.
|
|
175
|
+
|
|
176
|
+
### Migration notes
|
|
177
|
+
|
|
178
|
+
- The old legacy delegation stack is **not** part of the UKit 1.0.0 product surface.
|
|
179
|
+
- If you are upgrading an older workspace, rerun **`ukit install`** to refresh the installed files and hidden routing logic.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 lengockhoa
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
# UKit
|
|
2
|
+
|
|
3
|
+
UKit installs a project-local AI workspace (`.claude/`, adapters, docs, and index helpers) so your team can work with Claude Code, Antigravity, OpenAI Codex, and OpenCode from the same repo setup.
|
|
4
|
+
|
|
5
|
+
## Highest-Priority Team Rule
|
|
6
|
+
|
|
7
|
+
**For normal team usage, the only UKit command anyone should need to remember is `ukit install`.**
|
|
8
|
+
|
|
9
|
+
After `ukit install` finishes:
|
|
10
|
+
- open your AI tool
|
|
11
|
+
- describe the task in natural language
|
|
12
|
+
- let the workspace instructions route the flow
|
|
13
|
+
|
|
14
|
+
How the CLI binary itself gets installed or refreshed is a maintainer/platform concern.
|
|
15
|
+
Inside projects, the command teammates should remember remains **`ukit install`**.
|
|
16
|
+
|
|
17
|
+
Do **not** onboard the whole team around `ukit doctor`, `ukit diff`, `ukit uninstall`, or `ukit index ...`. Those commands can still exist for maintainers/debugging, but they are intentionally **not** the default human workflow.
|
|
18
|
+
|
|
19
|
+
## Team Workflow
|
|
20
|
+
|
|
21
|
+
1. Install the UKit CLI globally.
|
|
22
|
+
```bash
|
|
23
|
+
npm install -g @ngockhoale/ukit
|
|
24
|
+
```
|
|
25
|
+
2. Open any project root in the terminal.
|
|
26
|
+
3. Run:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
ukit install
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
4. Fill in the generated docs baseline:
|
|
33
|
+
- `docs/PROJECT.md`
|
|
34
|
+
- `docs/MEMORY.md`
|
|
35
|
+
- `docs/WORKLOG.md`
|
|
36
|
+
5. Open your AI tool and work in natural language.
|
|
37
|
+
|
|
38
|
+
## Update Policy
|
|
39
|
+
|
|
40
|
+
The same command handles both first-time setup and refreshes:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
ukit install
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
If UKit changes, your templates change, or a teammate needs to re-apply the workspace, rerun `ukit install`.
|
|
47
|
+
If maintainers roll out a newer CLI build, the in-project workflow still stays the same: rerun `ukit install`.
|
|
48
|
+
|
|
49
|
+
## What `ukit install` Creates
|
|
50
|
+
|
|
51
|
+
**Core workspace**
|
|
52
|
+
- `.claude/skills/` — canonical skills
|
|
53
|
+
- `.claude/agents/` — specialist agents
|
|
54
|
+
- `.claude/hooks/` — tool hooks
|
|
55
|
+
- `CLAUDE.md` — Claude Code instructions
|
|
56
|
+
- `AGENTS.md` — shared instructions for AGENTS-compatible tools
|
|
57
|
+
|
|
58
|
+
**Adapters**
|
|
59
|
+
- `.antigravity/skills/` → symlink to `.claude/skills/`
|
|
60
|
+
- `.antigravity/rules/` — Antigravity rules
|
|
61
|
+
- `.codex/settings.json` + `.codex/settings.local.json` — Codex config
|
|
62
|
+
- `opencode.json` — OpenCode project config with UKit-safe guardrails
|
|
63
|
+
|
|
64
|
+
**Project support files**
|
|
65
|
+
- `.claude/ukit/.ukit/` — installer manifests, metadata, backups
|
|
66
|
+
- `.ukit/` — hidden shared runtime storage for config, cache, and cross-agent memory
|
|
67
|
+
- `docs/` — PROJECT / MEMORY / WORKLOG baseline
|
|
68
|
+
|
|
69
|
+
## UKit v1.1.6 Runtime
|
|
70
|
+
|
|
71
|
+
UKit now installs a hidden shared local runtime at `.ukit/` for production-oriented state that should survive across agent sessions:
|
|
72
|
+
|
|
73
|
+
- `.ukit/storage/config.json` — runtime defaults for compact/router/memory/validation
|
|
74
|
+
- `.ukit/storage/cache/` — reusable prompt-cache, compact history, compact-pressure state, and output summaries
|
|
75
|
+
- `.ukit/storage/memory/` — cross-agent local memory
|
|
76
|
+
|
|
77
|
+
If an older repo still has a visible legacy `ukit/` runtime folder, rerunning `ukit install` now migrates the shared runtime into hidden `.ukit/` when the target paths are free.
|
|
78
|
+
|
|
79
|
+
When long sessions approach the compact threshold, UKit now uses a conservative pressure lane:
|
|
80
|
+
|
|
81
|
+
- soft threshold = configured compact token threshold
|
|
82
|
+
- hard threshold = roughly 20% above soft
|
|
83
|
+
- compact only safe-zone history/noise
|
|
84
|
+
- preserve active task, rules, decisions, and current code focus
|
|
85
|
+
|
|
86
|
+
UKit v1.1.6 keeps the same shared runtime contract while the npm distribution now lives under the owned maintainer scope:
|
|
87
|
+
|
|
88
|
+
- install globally with `npm install -g @ngockhoale/ukit`
|
|
89
|
+
- keep using the exact same human workflow inside projects: `ukit install`
|
|
90
|
+
- preserve the same `ukit` binary, hooks, and install-first orchestration while standardizing the runtime root as hidden `.ukit/`
|
|
91
|
+
|
|
92
|
+
UKit v1.1.6 also keeps the fast path improvements from the recent runtime releases:
|
|
93
|
+
|
|
94
|
+
- Vietnamese prompts now normalize more effectively for English-heavy code symbols and paths
|
|
95
|
+
- localized simple direct-target lanes skip extra previous-context / recent-output work when it would not change the next action
|
|
96
|
+
- routed verification lanes reuse declared `packageManager` metadata so helpers/hooks stop probing every lockfile candidate unnecessarily
|
|
97
|
+
|
|
98
|
+
For maintainers, the runtime is inspectable with:
|
|
99
|
+
|
|
100
|
+
- `ukit status`
|
|
101
|
+
- `ukit memory list`
|
|
102
|
+
- `ukit memory recall "<current task>"`
|
|
103
|
+
- `ukit memory export`
|
|
104
|
+
|
|
105
|
+
Normal teammates should still only need **`ukit install`**.
|
|
106
|
+
|
|
107
|
+
## Installer Behavior
|
|
108
|
+
|
|
109
|
+
- idempotent install (safe to rerun)
|
|
110
|
+
- timestamped backups before overwrite
|
|
111
|
+
- template rendering with project-aware variables
|
|
112
|
+
- dependency-ordered manifest execution
|
|
113
|
+
- path safety checks for template and target traversal
|
|
114
|
+
- shared-skill adapter linking across supported tools
|
|
115
|
+
- post-install docs baseline reminders
|
|
116
|
+
- automatic code-index build + refresh hook install
|
|
117
|
+
|
|
118
|
+
## Working Style After Install
|
|
119
|
+
|
|
120
|
+
UKit is built so the team can stop memorizing UKit subcommands and focus on product work:
|
|
121
|
+
- ask for fixes, reviews, implementations, tests, or docs in natural language
|
|
122
|
+
- let the installed instructions choose the right workflow
|
|
123
|
+
- let the AI use the indexed source code first so it can find the right files/tests fast
|
|
124
|
+
- let Claude Code / Codex / OpenCode auto-detect and use the right project-local skill from the prompt and the files/tools involved
|
|
125
|
+
- let the AI prefer targeted verification first, then widen only when shared/risky scope justifies it
|
|
126
|
+
- let the AI selectively auto-delegate internal subagents only when that actually reduces context/noise or unlocks parallel progress; small localized work should stay direct
|
|
127
|
+
- rerun `ukit install` when you need to refresh the workspace
|
|
128
|
+
|
|
129
|
+
End users should **not** need to know or memorize skill names.
|
|
130
|
+
|
|
131
|
+
## Upstream Skill Alignment
|
|
132
|
+
|
|
133
|
+
To keep UKit strong over time, maintainer work should track the current upstream skill ecosystem:
|
|
134
|
+
- official Anthropic skills: [anthropics/skills](https://github.com/anthropics/skills)
|
|
135
|
+
- official OpenAI skills: [openai/skills](https://github.com/openai/skills)
|
|
136
|
+
- Agent Skills open standard: [agentskills.io](https://agentskills.io/)
|
|
137
|
+
- curated discovery lists such as [awesome-claude-code](https://github.com/hesreallyhim/awesome-claude-code) and [awesome-agent-skills](https://github.com/VoltAgent/awesome-agent-skills)
|
|
138
|
+
|
|
139
|
+
But this is a **maintainer concern**, not a team-onboarding burden.
|
|
140
|
+
|
|
141
|
+
The rule remains:
|
|
142
|
+
|
|
143
|
+
> ship curated improvements through UKit, then ask teammates to rerun **`ukit install`**
|
|
144
|
+
|
|
145
|
+
Do **not** require normal contributors to learn marketplace/plugin commands just to use the workspace.
|
|
146
|
+
|
|
147
|
+
## Maintainer / Debug Commands
|
|
148
|
+
|
|
149
|
+
These commands are still available, but they are **advanced workflows**, not default team onboarding:
|
|
150
|
+
|
|
151
|
+
- `ukit diff` — preview file changes before install
|
|
152
|
+
- `ukit doctor` — validate UKit state and docs baseline
|
|
153
|
+
- `ukit uninstall` — remove UKit-managed assets
|
|
154
|
+
- `ukit status` — inspect shared UKit runtime state
|
|
155
|
+
- `ukit memory ...` — inspect/export/forget shared memory items
|
|
156
|
+
- `ukit index ...` — run repo indexing/query/triage tools directly
|
|
157
|
+
- `ukit build index` — alias for `ukit index build`
|
|
158
|
+
|
|
159
|
+
Use them when maintaining UKit, debugging workspace setup, or developing the CLI itself — not as the day-to-day path every teammate must learn.
|
|
160
|
+
|
|
161
|
+
## Repo Development
|
|
162
|
+
|
|
163
|
+
For maintainers evolving **UKit itself**, the key repo references live in:
|
|
164
|
+
|
|
165
|
+
- `docs/UKIT_CODEV_PRINCIPLES.md`
|
|
166
|
+
- `docs/RELEASE_1_1_3_SIGNOFF.md`
|
|
167
|
+
|
|
168
|
+
Run the test suite from the UKit repo root:
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
yarn test
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
For deeper index development, repo-level scripts are available:
|
|
175
|
+
- `yarn index:build`
|
|
176
|
+
- `yarn index:refresh`
|
|
177
|
+
- `yarn index:query -- "<error|symbol|path>"`
|
|
178
|
+
- `yarn bug:triage -- "<error signature>"`
|
|
179
|
+
|
|
180
|
+
## Tool Support
|
|
181
|
+
|
|
182
|
+
| Tool | Instructions | Skills | Config |
|
|
183
|
+
|------|-------------|--------|--------|
|
|
184
|
+
| Claude Code | `CLAUDE.md` | `.claude/skills/` (canonical) | `.claude/settings.json` |
|
|
185
|
+
| Antigravity | `AGENTS.md` | `.antigravity/skills/` (symlink) | `.antigravity/rules/`, `.antigravity/README.md` |
|
|
186
|
+
| OpenAI Codex | `AGENTS.md` | `.claude/skills/` (referenced) | `.codex/settings.json`, `.codex/settings.local.json`, `.codex/README.md` |
|
|
187
|
+
| OpenCode | `AGENTS.md` | `.claude/skills/` (native Claude-compatible support) | `opencode.json` |
|
|
188
|
+
|
|
189
|
+
All supported tools share the same SKILL.md ecosystem so the workspace is authored once and reused everywhere.
|
package/bin/ukit
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import fs from 'node:fs/promises';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import { fileURLToPath } from 'node:url';
|
|
6
|
+
import { runCli } from '../src/cli/index.js';
|
|
7
|
+
|
|
8
|
+
async function readPackageVersion(packageRoot) {
|
|
9
|
+
const raw = await fs.readFile(path.join(packageRoot, 'package.json'), 'utf8');
|
|
10
|
+
const packageJson = JSON.parse(raw);
|
|
11
|
+
return packageJson.version;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
async function main() {
|
|
15
|
+
const currentFile = fileURLToPath(import.meta.url);
|
|
16
|
+
const packageRoot = path.resolve(path.dirname(currentFile), '..');
|
|
17
|
+
const packageVersion = await readPackageVersion(packageRoot);
|
|
18
|
+
|
|
19
|
+
await runCli({
|
|
20
|
+
argv: process.argv.slice(2),
|
|
21
|
+
packageRoot,
|
|
22
|
+
projectRoot: process.cwd(),
|
|
23
|
+
packageVersion,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
main().catch((error) => {
|
|
28
|
+
console.error(`[UKit] ${error?.message ?? String(error)}`);
|
|
29
|
+
process.exitCode = 1;
|
|
30
|
+
});
|