@haus-tech/haus-workflow 5.0.0 → 5.0.1
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 +913 -751
- package/library/global/skills/request/SKILL.md +16 -11
- package/library/global/skills/request-sync/SKILL.md +3 -3
- package/package.json +1 -1
|
@@ -65,7 +65,7 @@ respektive skill. Här bor bara routing, kontextbärande, arkivet och dispatchen
|
|
|
65
65
|
- **Experimentdata når aldrig Asana.** `utvärdera` skriver aldrig via
|
|
66
66
|
request-sync; dess enda Asana-kontakt är läsande hämtning av önskemålet i
|
|
67
67
|
huvudkonversationen. `experiments/`-trädet är inte postkataloger: sync,
|
|
68
|
-
batch och guard läser bara `.haus/requests/<gid-eller-slug>/` på toppnivån
|
|
68
|
+
batch och guard läser bara `.haus-workflow/requests/<gid-eller-slug>/` på toppnivån
|
|
69
69
|
och rör aldrig `experiments/`.
|
|
70
70
|
- **Maskinen kör om enbart vid scriptbevisat kontraktsbrott.** Omdispatch
|
|
71
71
|
(budget EN per agent) svarar på ett fel som precheck, resolve-anchors eller
|
|
@@ -74,7 +74,7 @@ respektive skill. Här bor bara routing, kontextbärande, arkivet och dispatchen
|
|
|
74
74
|
maskinkörningar producerar fler röster, aldrig mer sanning. Ingen ny
|
|
75
75
|
omkörningsmekanism får läggas till som bryter mot detta.
|
|
76
76
|
|
|
77
|
-
## Arkivet: `.haus/requests/`
|
|
77
|
+
## Arkivet: `.haus-workflow/requests/`
|
|
78
78
|
|
|
79
79
|
Orkestreringens kuvert. De haus-hanterade request-skillsen känner inte till det;
|
|
80
80
|
den här skillen (och agenterna via sina prompter) underhåller det.
|
|
@@ -84,7 +84,7 @@ samma önskemål) blir flera kataloger — poängen sätts per post, så en kata
|
|
|
84
84
|
med flera specar går inte att bedöma.
|
|
85
85
|
|
|
86
86
|
```
|
|
87
|
-
<repo-rot>/.haus/requests/<gid-eller-slug>/
|
|
87
|
+
<repo-rot>/.haus-workflow/requests/<gid-eller-slug>/
|
|
88
88
|
├── spec.md EN spec, bytetrogen — det granskaren godkänner
|
|
89
89
|
├── granskarblock.md "## Till granskaren" (bunt: samma block
|
|
90
90
|
│ kopieras till varje delkatalog)
|
|
@@ -109,10 +109,15 @@ omdispatch-regeln i dispatch-kontraktet.
|
|
|
109
109
|
- Katalognamn: Asana-gid när posten finns på brädan, annars en kebab-slug av
|
|
110
110
|
spec-rubriken. Bunt utan gid: `<slug>-1`, `<slug>-2`, … När gid myntas senare:
|
|
111
111
|
döp om katalogen till gid och notera sluggen i `state.json.former_slug`.
|
|
112
|
-
- **
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
112
|
+
- **Gitignore ägs av haus, inte av dig.** `.haus-workflow/requests/` står i den
|
|
113
|
+
haus-hanterade `.gitignore`-blocken och skrivs av `haus apply` — lägg aldrig till
|
|
114
|
+
raden själv, och hand-editera aldrig blocket. Står arkivet ändå spårat i git:
|
|
115
|
+
kör `haus apply --write`, som både skriver regeln och avspårar filerna.
|
|
116
|
+
Prisunderlag ska inte in i kundens historik. `.haus-workflow/request.json` (syncens
|
|
117
|
+
config) förblir spårad — den är konfiguration, inte arbetsmaterial.
|
|
118
|
+
- **Gammalt arkiv under `.haus/`:** flyttas av `haus apply` till
|
|
119
|
+
`.haus-workflow/` (ADR-0103). Skriv aldrig till `.haus/` igen, och flytta inte
|
|
120
|
+
själv — kör `haus apply --write` och låt kommandot göra det.
|
|
116
121
|
|
|
117
122
|
### `state.json`
|
|
118
123
|
|
|
@@ -215,7 +220,7 @@ omdispatch-regeln i dispatch-kontraktet.
|
|
|
215
220
|
Modellkörningar från `utvärdera` bor i ett eget träd och är aldrig prisposter:
|
|
216
221
|
|
|
217
222
|
```
|
|
218
|
-
<repo-rot>/.haus/requests/experiments/<slug>/
|
|
223
|
+
<repo-rot>/.haus-workflow/requests/experiments/<slug>/
|
|
219
224
|
├── experiment.json ticketreferens, datum, modellista, manifest-hash,
|
|
220
225
|
│ status per körning
|
|
221
226
|
├── <modell>/ `default` som modellvärde ger katalognamnet
|
|
@@ -255,7 +260,7 @@ Modellkörningar från `utvärdera` bor i ett eget träd och är aldrig prispost
|
|
|
255
260
|
skrivs exakt så, mellanslag och diakritiska tecken inkluderade. Äldre filer
|
|
256
261
|
med `baselinemodell` och `kandidatmodell` läses utan fel; nya skrivningar
|
|
257
262
|
använder bara `varianter`.
|
|
258
|
-
- `experiments/` ärver gitignore-skyddet från `.haus/requests/`.
|
|
263
|
+
- `experiments/` ärver gitignore-skyddet från `.haus-workflow/requests/`.
|
|
259
264
|
|
|
260
265
|
## Uppgift: `speca`
|
|
261
266
|
|
|
@@ -325,7 +330,7 @@ driftvakt.
|
|
|
325
330
|
Endast `✅ Spec ok` (normaliserad på alfabetiska kärnan) släpper igenom.
|
|
326
331
|
Annan status: visa den och stanna. En inklistrad spec för en post som har
|
|
327
332
|
gid räknas inte — det är brädstatusen som gäller, läs den ändå.
|
|
328
|
-
- **Posten saknar gid MEN repot har `.haus/request.json`:** vägra — repot är
|
|
333
|
+
- **Posten saknar gid MEN repot har `.haus-workflow/request.json`:** vägra — repot är
|
|
329
334
|
kopplat till en bräda, så en gid-lös post ska in via intaget och granskas
|
|
330
335
|
där, inte prissättas vid sidan av. Grinden är värd något bara om den inte
|
|
331
336
|
går att kliva runt.
|
|
@@ -851,7 +856,7 @@ runt `claude -p`-anropet och skriver `matning.json`, och den kör
|
|
|
851
856
|
ticket. `/clear` mellan tickets behövs inte — processgränsen är
|
|
852
857
|
motsvarigheten. Headless-körningen förutsätter att uppgiften kan köra utan
|
|
853
858
|
interaktiva permission-frågor, vilket håller: den läser repot och skriver
|
|
854
|
-
enbart under `.haus/requests/` — plus EN läsande Asana-hämtning per ticket
|
|
859
|
+
enbart under `.haus-workflow/requests/` — plus EN läsande Asana-hämtning per ticket
|
|
855
860
|
(steg 1), så MCP-behörigheten för läsning måste täcka headless-körning.
|
|
856
861
|
- **Kör vidare vid fel.** En ticket vars gid inte går att hämta eller vars
|
|
857
862
|
process kraschar noteras i sammanfattningen; resten av listan fortsätter.
|
|
@@ -17,7 +17,7 @@ Skapa aldrig en request direkt på samlingsbrädan. En request som föds där sy
|
|
|
17
17
|
|
|
18
18
|
## Sessionsstart
|
|
19
19
|
|
|
20
|
-
Läs `.haus/request.json` i repo-roten:
|
|
20
|
+
Läs `.haus-workflow/request.json` i repo-roten:
|
|
21
21
|
|
|
22
22
|
```json
|
|
23
23
|
{
|
|
@@ -39,7 +39,7 @@ Brädnamn är inte unika och flera brädor kan höra till samma kund. Använd al
|
|
|
39
39
|
|
|
40
40
|
## Uppsättning
|
|
41
41
|
|
|
42
|
-
Kör den här när `.haus/request.json` saknas, och när användaren ber om det — "sätt upp", "koppla repot", "kör uppsättningen igen". Ett steg i taget, med användarens svar emellan. Fråga aldrig allt på en gång.
|
|
42
|
+
Kör den här när `.haus-workflow/request.json` saknas, och när användaren ber om det — "sätt upp", "koppla repot", "kör uppsättningen igen". Ett steg i taget, med användarens svar emellan. Fråga aldrig allt på en gång.
|
|
43
43
|
|
|
44
44
|
**1 — Var är repo-roten?**
|
|
45
45
|
|
|
@@ -399,7 +399,7 @@ Task name ska vara det förändrade tillståndet, inte uppgiften, samma regel so
|
|
|
399
399
|
|
|
400
400
|
### Sektion på kundbrädan
|
|
401
401
|
|
|
402
|
-
- **Finns `customer_section` i konfigurationen:** använd den, men verifiera först att sektionen fortfarande finns på brädan — sektioner byter namn och tas bort. Är den borta: fråga vilken som gäller nu och uppdatera `.haus/request.json`.
|
|
402
|
+
- **Finns `customer_section` i konfigurationen:** använd den, men verifiera först att sektionen fortfarande finns på brädan — sektioner byter namn och tas bort. Är den borta: fråga vilken som gäller nu och uppdatera `.haus-workflow/request.json`.
|
|
403
403
|
- **Saknas `customer_section` och brädan har flera sektioner:** fråga **en gång** och använd svaret för hela omgången. Skapar du tio tasks ur ett mejl ska du inte fråga tio gånger. Erbjud att spara svaret i konfigurationsfilen så frågan inte återkommer.
|
|
404
404
|
- **Har brädan bara en sektion:** fråga inte.
|
|
405
405
|
- **Spänner omgången flera sektioner** — ett mejl innehåller ofta önskemål som hör till olika projekt — gissa inte utifrån innehållet. Fråga en gång om alla ska till samma sektion, och be om fördelningen om svaret är nej.
|