pm-ts-starter 2026.9.18 → 2026.9.22

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 CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026.9.22 - 2026-09-22
4
+
5
+ ### Fixed
6
+
7
+ - A publish that npm accepts late is reported as failed and the GitHub Release is skipped on bun mirror lag ([pm-ts-starter-beto](https://github.com/unbraind/pm-ts-starter/blob/main/.agents/pm/issues/pm-ts-starter-beto.toon))
8
+ - Add fail-closed docstring, duplication, lint, and authored-TypeScript gates ([pm-ts-starter-s2kh](https://github.com/unbraind/pm-ts-starter/blob/main/.agents/pm/issues/pm-ts-starter-s2kh.toon))
9
+
10
+ ### Other
11
+
12
+ - Certify pm CLI 2026.9.21 and move onto the canonical pm-ops merge-driver, lint and duplication gates ([pm-ts-starter-jwgz](https://github.com/unbraind/pm-ts-starter/blob/main/.agents/pm/tasks/pm-ts-starter-jwgz.toon))
13
+
3
14
  ## 2026.9.18 - 2026-09-18
4
15
 
5
16
  ### Other
package/README.md CHANGED
@@ -137,9 +137,9 @@ This package is release-ready for GitHub, npm, and Bun-compatible installs. CI r
137
137
  This repo tracks its project management in `.agents/pm/` and ships a committed `.gitattributes`
138
138
  that maps those tracker artifacts to pm-cli's field-aware Git merge drivers, so concurrent-branch
139
139
  tracker edits merge cleanly instead of hard-conflicting. The driver **definitions** live in
140
- per-clone Git config; `npm install` / `npm ci` wires them automatically via the `prepare` script (a portable TypeScript guard, `scripts/prepare-merge-driver.ts`: it runs
141
- `pm merge install` only when the `pm` CLI is on `PATH`, and no-ops cleanly otherwise so
142
- production / `--omit=dev` installs are not broken; being Node-based it behaves identically
140
+ per-clone Git config; `npm install` / `npm ci` wires them automatically via the `prepare` script (a thin
141
+ launcher, `scripts/prepare-merge-driver.ts`, over the canonical `pm-ops/merge-driver` export: it runs
142
+ `pm merge install` only when the `pm` CLI is on `PATH`, and no-ops cleanly when `pm` is absent. Registry installs of this package never run `prepare`; a production install of a clone (`npm ci --omit=dev`) omits `pm-ops` too, so it must pass `--ignore-scripts`; being Node-based it behaves identically
143
143
  on POSIX shells and Windows `cmd.exe`). To (re)run manually: `npm run merge:install`.
144
144
 
145
145
  After merging a branch that touched `.agents/pm/`, reconcile any residual history-hash drift with
package/manifest.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pm-ts-starter",
3
- "version": "2026.9.18",
3
+ "version": "2026.9.22",
4
4
  "description": "TypeScript reference extension covering all 9 SDK capability types: commands, renderers, hooks, schema, importers, search, parser, preflight, services. Aligned to the pm-cli 2026.7.6 SDK: demonstrates defineExtension plus registerCommand/registerFlags (with failure_hints + typed positional arguments), registerItemFields/registerItemTypes/registerMigration, the five api.hooks.* lifecycle hooks, registerImporter/registerExporter (with ImportExportRegistrationOptions), registerRenderer, registerSearchProvider/registerVectorStoreAdapter, registerParser, registerPreflight, registerService, PmCliExpectedError-shaped errors, demo commands for the plan/context/search/history-compact pm surfaces, and a guided `ts-starter setup --interactive` onboarding - all fully typed.",
5
5
  "author": "@unbraind",
6
6
  "entry": "./dist/index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pm-ts-starter",
3
- "version": "2026.9.18",
3
+ "version": "2026.9.22",
4
4
  "description": "TypeScript reference extension for pm-cli covering all capability types",
5
5
  "repository": {
6
6
  "type": "git",
@@ -27,12 +27,14 @@
27
27
  "typecheck": "tsc --noEmit",
28
28
  "check": "npm run typecheck",
29
29
  "docstring": "node scripts/docstring-gate.ts",
30
+ "lint": "node scripts/lint.ts",
31
+ "duplication": "node scripts/duplication-gate.ts",
30
32
  "audit:prod": "node --input-type=module -e \"import { spawnSync } from 'node:child_process'; import { devNull } from 'node:os'; const env = { ...process.env, npm_config_userconfig: devNull, NPM_CONFIG_USERCONFIG: devNull }; for (const key of Object.keys(env)) if (key.toLowerCase() === 'npm_config_allow_scripts') delete env[key]; const win = process.platform === 'win32'; const r = spawnSync(win ? 'npm.cmd' : 'npm', ['audit', '--omit=dev', '--ignore-scripts'], { stdio: 'inherit', env, shell: win }); process.exit(r.status ?? 1);\"",
31
33
  "pack:dry-run": "npm pack --dry-run",
32
34
  "changelog": "pm-changelog --pm-root .agents/pm --mode prepend --output CHANGELOG.md --release-version-from-package --date-from-version --since-previous-tag --until-release-tag --item-url-base https://github.com/unbraind/pm-ts-starter/blob/main/.agents/pm --respect-item-release --pm-bin ./node_modules/.bin/pm --pm-arg=--output-budget --pm-arg=unbounded --pm-arg=--output-limit --pm-arg=unbounded",
33
35
  "changelog:full": "pm-changelog --pm-root .agents/pm --mode replace --output CHANGELOG.md --all-release-tags --release-version-from-package --date-from-version --item-url-base https://github.com/unbraind/pm-ts-starter/blob/main/.agents/pm --respect-item-release --pm-bin ./node_modules/.bin/pm --pm-arg=--output-budget --pm-arg=unbounded --pm-arg=--output-limit --pm-arg=unbounded",
34
36
  "changelog:check": "pm-changelog --pm-root .agents/pm --mode replace --output CHANGELOG.md --all-release-tags --release-version-from-package --date-from-version --item-url-base https://github.com/unbraind/pm-ts-starter/blob/main/.agents/pm --respect-item-release --check --pm-bin ./node_modules/.bin/pm --pm-arg=--output-budget --pm-arg=unbounded --pm-arg=--output-limit --pm-arg=unbounded",
35
- "release:check": "npm run typecheck && npm run build && npm run docstring && npm run coverage && npm run audit:prod && npm run pack:dry-run && npm run changelog:check && npm run verify:release-publish-attestation && npm run verify:release-changelog-date",
37
+ "release:check": "npm run typecheck && npm run lint && npm run duplication && npm run build && npm run docstring && npm run coverage && npm run audit:prod && npm run pack:dry-run && npm run changelog:check && npm run verify:release-publish-attestation && npm run verify:release-changelog-date",
36
38
  "prepublishOnly": "npm run release:check",
37
39
  "release:notes": "pm-changelog --pm-root .agents/pm --stdout --since-previous-tag --until-release-tag --release-version-from-package --date-from-version --item-url-base https://github.com/unbraind/pm-ts-starter/blob/main/.agents/pm --respect-item-release --pm-bin ./node_modules/.bin/pm --github-step-summary --pm-arg=--output-budget --pm-arg=unbounded --pm-arg=--output-limit --pm-arg=unbounded",
38
40
  "prepare": "node scripts/prepare-merge-driver.ts",
@@ -45,10 +47,15 @@
45
47
  "@unbrained/pm-cli": ">=2026.8.7"
46
48
  },
47
49
  "devDependencies": {
50
+ "@babel/eslint-parser": "^8.0.5",
51
+ "@babel/plugin-syntax-typescript": "^8.0.3",
48
52
  "@types/node": "^26.2.0",
49
- "@unbrained/pm-cli": "2026.9.17",
50
- "pm-changelog": "2026.9.16",
51
- "pm-ops": "2026.9.13",
53
+ "@unbrained/pm-cli": "2026.9.21",
54
+ "eslint": "^10.10.0",
55
+ "fast-glob": "^3.3.3",
56
+ "jscpd": "^4.3.0",
57
+ "pm-changelog": "2026.9.18",
58
+ "pm-ops": "2026.9.18",
52
59
  "typescript": "^7.0.2"
53
60
  },
54
61
  "keywords": [
@@ -116,5 +123,9 @@
116
123
  "functions": 100
117
124
  },
118
125
  "ignore": []
126
+ },
127
+ "duplicationGate": {
128
+ "threshold": 0,
129
+ "minTokens": 50
119
130
  }
120
131
  }