@eltonssouza/development-utility-kit 0.15.1 → 0.16.0

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.
Files changed (35) hide show
  1. package/.claude/skills/_vendor/NOTICE.md +11 -0
  2. package/.claude/skills/_vendor/mattpocock-LICENSE +21 -0
  3. package/.claude/skills/_vendor/vendored.json +15 -0
  4. package/.claude/skills/diagnose/SKILL.md +117 -0
  5. package/.claude/skills/diagnose/scripts/hitl-loop.template.sh +41 -0
  6. package/.claude/skills/grill-with-docs/ADR-FORMAT.md +47 -0
  7. package/.claude/skills/grill-with-docs/CONTEXT-FORMAT.md +60 -0
  8. package/.claude/skills/grill-with-docs/SKILL.md +88 -0
  9. package/.claude/skills/improve-codebase-architecture/DEEPENING.md +37 -0
  10. package/.claude/skills/improve-codebase-architecture/HTML-REPORT.md +123 -0
  11. package/.claude/skills/improve-codebase-architecture/INTERFACE-DESIGN.md +44 -0
  12. package/.claude/skills/improve-codebase-architecture/LANGUAGE.md +53 -0
  13. package/.claude/skills/improve-codebase-architecture/SKILL.md +81 -0
  14. package/.claude/skills/prototype/LOGIC.md +79 -0
  15. package/.claude/skills/prototype/SKILL.md +30 -0
  16. package/.claude/skills/prototype/UI.md +112 -0
  17. package/.claude/skills/setup-matt-pocock-skills/SKILL.md +121 -0
  18. package/.claude/skills/setup-matt-pocock-skills/domain.md +51 -0
  19. package/.claude/skills/setup-matt-pocock-skills/issue-tracker-github.md +22 -0
  20. package/.claude/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +23 -0
  21. package/.claude/skills/setup-matt-pocock-skills/issue-tracker-local.md +19 -0
  22. package/.claude/skills/setup-matt-pocock-skills/triage-labels.md +15 -0
  23. package/.claude/skills/tdd/SKILL.md +109 -0
  24. package/.claude/skills/tdd/deep-modules.md +33 -0
  25. package/.claude/skills/tdd/interface-design.md +31 -0
  26. package/.claude/skills/tdd/mocking.md +59 -0
  27. package/.claude/skills/tdd/refactoring.md +10 -0
  28. package/.claude/skills/tdd/tests.md +61 -0
  29. package/.claude/skills/triage/AGENT-BRIEF.md +168 -0
  30. package/.claude/skills/triage/OUT-OF-SCOPE.md +101 -0
  31. package/.claude/skills/triage/SKILL.md +103 -0
  32. package/.claude/skills/zoom-out/SKILL.md +7 -0
  33. package/README.repo.md +1 -1
  34. package/bin/lib/lint.js +16 -1
  35. package/package.json +1 -1
package/README.repo.md CHANGED
@@ -404,7 +404,7 @@ Full vault under [`docs/brain/`](docs/brain/) — browse via Obsidian. Live ADR
404
404
 
405
405
  Honest thanks to:
406
406
 
407
- - **[`grill-me`](https://github.com/mattpocock/skills)** — by **[Matt Pocock](https://github.com/mattpocock)** ([aihero.dev](https://www.aihero.dev/my-grill-me-skill-has-gone-viral)). The relentless discovery interview that opens our `grill-me to-prd to-issues analyst run-sprint` pipeline is Matt's design. We adapted the skill to persist its output to `docs/discovery/DISCOVERY_*.md` and hand off to `analyst`, but the interview mechanicone decision branch at a time, with a recommended answer the user just confirms is his.
407
+ - **[`mattpocock/skills`](https://github.com/mattpocock/skills)** — by **[Matt Pocock](https://github.com/mattpocock)** ([aihero.dev](https://www.aihero.dev/my-grill-me-skill-has-gone-viral)). The relentless `grill-me` discovery interview is Matt's design. As of **v0.16.0** the harness is **adopting Matt's full issue-tracker engineering workflow** (ADR-049, MIT): we **vendor** his skills `diagnose`, `grill-with-docs`, `improve-codebase-architecture`, `prototype`, `setup-matt-pocock-skills`, `tdd`, `triage`, `zoom-out` (and, in a later sprint, `to-prd`/`to-issues`) under `.claude/skills/` with his `LICENSE` + a `NOTICE` (see `.claude/skills/_vendor/`). They are bundled, not re-authored; upstream is the source of truth. The staged migration is in `docs/plans/PLAN_mattpocock-workflow-adoption.md`.
408
408
  - **[`caveman`](https://github.com/JuliusBrussee/caveman)** — by **[Julius Brussee](https://github.com/JuliusBrussee)**. The telegraphic communication mode that saves us 65–75% of output tokens with zero technical loss. We use it as the default style in this harness; the compression rules, the levels (lite/full/ultra), and the auto-clarity carve-outs are Julius's work.
409
409
  - **[`impeccable`](https://github.com/pbakaus/impeccable)** — by **[Paul Bakaus](https://github.com/pbakaus)**. The design-refinement skill (`polish | harden | audit`) that drives our visual-quality gate. Paul's `npx skills add pbakaus/impeccable` distribution pattern also directly inspired our own `npx @eltonssouza/development-utility-kit install` installer (ADR-018).
410
410
  - **[`rtk`](https://github.com/rtk-ai/rtk)** — by the **[rtk-ai](https://github.com/rtk-ai) team**. The Rust Token Killer CLI proxy that powers the live "RTK savings" widget on the `duk dashboard` (`rtk gain --format json` → `/api/rtk`). The 60–90% savings on dev operations we surface in the dashboard are RTK's, not ours.
package/bin/lib/lint.js CHANGED
@@ -174,9 +174,23 @@ function findStackPacks() {
174
174
  // ── Category 1: skills.frontmatter ──────────────────────────────────────────
175
175
 
176
176
  const SKILL_REQUIRED_FIELDS = ['name', 'description', 'tools', 'model'];
177
+ // Vendored third-party skills are valid Claude Code skills as-authored upstream;
178
+ // `tools`/`model` are a harness-internal convention, not a Claude Code requirement.
179
+ const VENDORED_REQUIRED_FIELDS = ['name', 'description'];
180
+
181
+ function loadVendoredSkillNames() {
182
+ try {
183
+ const p = path.join(packageRoot(), '.claude', 'skills', '_vendor', 'vendored.json');
184
+ const data = JSON.parse(fs.readFileSync(p, 'utf8'));
185
+ return new Set(Array.isArray(data.skills) ? data.skills : []);
186
+ } catch {
187
+ return new Set();
188
+ }
189
+ }
177
190
 
178
191
  function checkSkillsFrontmatter() {
179
192
  const violations = [];
193
+ const vendored = loadVendoredSkillNames();
180
194
  for (const skill of findSkills()) {
181
195
  const content = readSafe(skill.path);
182
196
  if (content === null) {
@@ -184,7 +198,8 @@ function checkSkillsFrontmatter() {
184
198
  continue;
185
199
  }
186
200
  const { frontmatter } = extractFrontmatter(content);
187
- for (const f of SKILL_REQUIRED_FIELDS) {
201
+ const required = vendored.has(skill.name) ? VENDORED_REQUIRED_FIELDS : SKILL_REQUIRED_FIELDS;
202
+ for (const f of required) {
188
203
  if (!frontmatter[f]) {
189
204
  violations.push({
190
205
  category: 'skills', severity: ERROR, file: skill.path, line: 1,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eltonssouza/development-utility-kit",
3
- "version": "0.15.1",
3
+ "version": "0.16.0",
4
4
  "description": "npx installer for the development-utility-kit harness",
5
5
  "bin": {
6
6
  "duk": "bin/cli.js"