@haus-tech/haus-workflow 0.16.2 → 0.16.3
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 +6 -0
- package/dist/cli.js +55 -6
- package/library/global/skills/haus-workflow/SKILL.md +1 -3
- package/package.json +2 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.16.3](https://github.com/WeAreHausTech/haus-workflow/compare/v0.16.2...v0.16.3) (2026-06-09)
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
- **install:** keep skill frontmatter valid by stamping marker as a field ([#79](https://github.com/WeAreHausTech/haus-workflow/issues/79)) ([76ddbf1](https://github.com/WeAreHausTech/haus-workflow/commit/76ddbf1248b8844538363dcfd3744cd975d96f52))
|
|
8
|
+
|
|
3
9
|
## [0.16.2](https://github.com/WeAreHausTech/haus-workflow/compare/v0.16.1...v0.16.2) (2026-06-09)
|
|
4
10
|
|
|
5
11
|
## [0.16.1](https://github.com/WeAreHausTech/haus-workflow/compare/v0.16.0...v0.16.1) (2026-06-09)
|
package/dist/cli.js
CHANGED
|
@@ -3323,6 +3323,8 @@ import fs15 from "fs-extra";
|
|
|
3323
3323
|
// src/install/header.ts
|
|
3324
3324
|
var MD_PREFIX = "<!-- HAUS-MANAGED";
|
|
3325
3325
|
var MD_SUFFIX = " -->";
|
|
3326
|
+
var FM_FENCE = "---";
|
|
3327
|
+
var FM_KEY = "haus_managed";
|
|
3326
3328
|
function parseAttrs(raw) {
|
|
3327
3329
|
const idMatch = /\bid=(\S+)/.exec(raw);
|
|
3328
3330
|
const vMatch = /\bv=(\S+)/.exec(raw);
|
|
@@ -3330,20 +3332,67 @@ function parseAttrs(raw) {
|
|
|
3330
3332
|
if (!idMatch || !vMatch || !srcMatch) return void 0;
|
|
3331
3333
|
return { stableId: idMatch[1], schemaVersion: vMatch[1], source: srcMatch[1] };
|
|
3332
3334
|
}
|
|
3335
|
+
function isFence(line2) {
|
|
3336
|
+
return (line2 ?? "").replace(/\r$/, "") === FM_FENCE;
|
|
3337
|
+
}
|
|
3338
|
+
function hasFrontmatter(content2) {
|
|
3339
|
+
return isFence(content2.split("\n", 1)[0]);
|
|
3340
|
+
}
|
|
3341
|
+
function frontmatterMarkerValue(content2) {
|
|
3342
|
+
const lines = content2.split("\n");
|
|
3343
|
+
if (!isFence(lines[0])) return void 0;
|
|
3344
|
+
for (let i = 1; i < lines.length; i++) {
|
|
3345
|
+
if (isFence(lines[i])) return void 0;
|
|
3346
|
+
const m = /^haus_managed:\s*"?(.*?)"?\s*$/.exec(lines[i]);
|
|
3347
|
+
if (m) return m[1];
|
|
3348
|
+
}
|
|
3349
|
+
return void 0;
|
|
3350
|
+
}
|
|
3333
3351
|
function parseMarkdownHeader(content2) {
|
|
3334
3352
|
const firstLine = content2.split("\n")[0] ?? "";
|
|
3335
|
-
if (
|
|
3336
|
-
|
|
3353
|
+
if (firstLine.startsWith(MD_PREFIX)) return parseAttrs(firstLine);
|
|
3354
|
+
const fmValue = frontmatterMarkerValue(content2);
|
|
3355
|
+
if (fmValue !== void 0) return parseAttrs(fmValue);
|
|
3356
|
+
return void 0;
|
|
3337
3357
|
}
|
|
3338
3358
|
function buildMarkdownHeader(h) {
|
|
3339
3359
|
return `${MD_PREFIX} id=${h.stableId} v=${h.schemaVersion} source=${h.source}${MD_SUFFIX}`;
|
|
3340
3360
|
}
|
|
3361
|
+
function buildMarkerValue(h) {
|
|
3362
|
+
return `id=${h.stableId} v=${h.schemaVersion} source=${h.source}`;
|
|
3363
|
+
}
|
|
3364
|
+
function stampFrontmatter(content2, h) {
|
|
3365
|
+
const lines = content2.split("\n");
|
|
3366
|
+
let close = -1;
|
|
3367
|
+
for (let i = 1; i < lines.length; i++) {
|
|
3368
|
+
if (isFence(lines[i])) {
|
|
3369
|
+
close = i;
|
|
3370
|
+
break;
|
|
3371
|
+
}
|
|
3372
|
+
}
|
|
3373
|
+
if (close === -1) return content2;
|
|
3374
|
+
const fields2 = [];
|
|
3375
|
+
for (let i = 1; i < close; i++) {
|
|
3376
|
+
if (/^haus_managed:/.test(lines[i])) continue;
|
|
3377
|
+
fields2.push(lines[i]);
|
|
3378
|
+
}
|
|
3379
|
+
const rebuilt = [
|
|
3380
|
+
FM_FENCE,
|
|
3381
|
+
...fields2,
|
|
3382
|
+
`${FM_KEY}: "${buildMarkerValue(h)}"`,
|
|
3383
|
+
...lines.slice(close)
|
|
3384
|
+
// closing fence + body
|
|
3385
|
+
];
|
|
3386
|
+
return rebuilt.join("\n");
|
|
3387
|
+
}
|
|
3341
3388
|
function stampMarkdown(content2, h) {
|
|
3389
|
+
if (hasFrontmatter(content2)) return stampFrontmatter(content2, h);
|
|
3342
3390
|
const header = buildMarkdownHeader(h);
|
|
3343
|
-
const
|
|
3344
|
-
if (
|
|
3345
|
-
const
|
|
3346
|
-
|
|
3391
|
+
const firstLine = content2.split("\n")[0] ?? "";
|
|
3392
|
+
if (firstLine.startsWith(MD_PREFIX)) {
|
|
3393
|
+
const nl = content2.indexOf("\n");
|
|
3394
|
+
const rest = nl === -1 ? "" : content2.slice(nl + 1);
|
|
3395
|
+
return rest === "" ? header : `${header}
|
|
3347
3396
|
${rest}`;
|
|
3348
3397
|
}
|
|
3349
3398
|
return `${header}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
---
|
|
3
2
|
name: haus-workflow
|
|
4
3
|
description: Haus all-in-one workflow skill. Handles project setup, update, catalog refresh, and CLAUDE.md regeneration. Invoke with a task name or without to get a menu.
|
|
5
|
-
|
|
6
4
|
---
|
|
7
5
|
|
|
8
6
|
# haus-workflow
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@haus-tech/haus-workflow",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.3",
|
|
4
4
|
"description": "Haus AI workflow CLI for Claude Code.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -18,9 +18,7 @@
|
|
|
18
18
|
"library/catalog",
|
|
19
19
|
"tests/fixtures/catalog",
|
|
20
20
|
"README.md",
|
|
21
|
-
"CHANGELOG.md"
|
|
22
|
-
"LICENSE",
|
|
23
|
-
"NOTICE"
|
|
21
|
+
"CHANGELOG.md"
|
|
24
22
|
],
|
|
25
23
|
"scripts": {
|
|
26
24
|
"build": "tsup src/cli.ts --format esm --dts --clean --out-dir dist --external @inquirer/checkbox",
|
|
@@ -34,8 +32,6 @@
|
|
|
34
32
|
"typecheck": "tsc --noEmit",
|
|
35
33
|
"typecheck:scripts": "tsc --noEmit --project tsconfig.scripts.json",
|
|
36
34
|
"pack:local": "yarn pack",
|
|
37
|
-
"publish:dry": "npm pack --dry-run",
|
|
38
|
-
"publish:public": "yarn npm publish --access public",
|
|
39
35
|
"release": "GITHUB_TOKEN=$(gh auth token) release-it",
|
|
40
36
|
"release:dry": "GITHUB_TOKEN=$(gh auth token) release-it --dry-run",
|
|
41
37
|
"prepack": "yarn build",
|