@ankhorage/devtools 1.21.0 → 1.21.2

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/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  # @ankhorage/devtools
5
5
 
6
- ![license: MIT](././paradox/badges/license.svg) ![npm: v1.21.0](././paradox/badges/npm.svg) ![runtime: bun](././paradox/badges/runtime.svg) ![typescript: strict](././paradox/badges/typescript.svg) ![eslint: checked](././paradox/badges/eslint.svg) ![prettier: checked](././paradox/badges/prettier.svg) ![build: checked](././paradox/badges/build.svg) ![tests: checked](././paradox/badges/tests.svg) ![docs: paradox](././paradox/badges/docs.svg)
6
+ ![license: MIT](././paradox/badges/license.svg) ![npm: v1.21.2](././paradox/badges/npm.svg) ![runtime: bun](././paradox/badges/runtime.svg) ![typescript: strict](././paradox/badges/typescript.svg) ![eslint: checked](././paradox/badges/eslint.svg) ![prettier: checked](././paradox/badges/prettier.svg) ![build: checked](././paradox/badges/build.svg) ![tests: checked](././paradox/badges/tests.svg) ![docs: paradox](././paradox/badges/docs.svg)
7
7
 
8
8
  Shared tooling, repository automation, runtime policies, and agent standards for Ankhorage TypeScript projects
9
9
 
@@ -163,7 +163,13 @@ belong together in `ankhorage/navigator/src/constants/navigator.ts`.
163
163
  `utils/` is the only utility directory name. Do not create `shared/`, `helper/`, `helpers/`,
164
164
  `common/`, or equivalent catch-all folders. It is not a destination for every pure function or type.
165
165
 
166
- Apply **reuse before implementation** and **shared by default** before choosing a local owner. For
166
+ Apply **reuse before implementation** and **shared by default** before choosing a local owner.
167
+
168
+ Treat the **second equivalent generic implementation as the duplication threshold**. When the same
169
+ general-purpose regex, parser pattern, formatter, validator, algorithm, or static policy appears in
170
+ two places, stop copying it and resolve its canonical shared owner. For runtime-neutral reusable
171
+ behavior or patterns, inspect and extend `@ankhorage/utility` first. Do not wait for a third copy,
172
+ and do not create repo-local aliases around the shared implementation. For
167
173
  every function that could reasonably be reused across repositories, you MUST first inspect the
168
174
  published `@ankhorage/utility` public API and its owning topic. Reuse the existing export when its
169
175
  semantics match. If the function is missing and is generic without product, manifest, or framework
@@ -372,7 +372,8 @@ jobs:
372
372
  };
373
373
  if (
374
374
  !/^@ankhorage\/[a-z0-9][a-z0-9-]*$/.test(release.name ?? '') ||
375
- !/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(release.version ?? '') ||
375
+ typeof release.version !== 'string' ||
376
+ release.version.length === 0 ||
376
377
  !/^ankhorage\/[a-z0-9-]+$/.test(release.sourceRepository ?? '')
377
378
  ) {
378
379
  throw new Error(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ankhorage/devtools",
3
- "version": "1.21.0",
3
+ "version": "1.21.2",
4
4
  "description": "Shared tooling, repository automation, runtime policies, and agent standards for Ankhorage TypeScript projects",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/ankhorage/devtools#readme",
@@ -151,7 +151,7 @@
151
151
  "devDependencies": {
152
152
  "@ankhorage/paradox": "^0.1.26",
153
153
  "@ankhorage/ankh": "^0.10.4",
154
- "@ankhorage/doctor": "0.10.40",
154
+ "@ankhorage/doctor": "0.11.0",
155
155
  "@techstark/opencv-js": "^5.0.0-release.1",
156
156
  "@types/bun": "^1.4.1",
157
157
  "@types/node": "^26.6.2",