@haus-tech/haus-workflow 4.7.0 → 4.9.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.
- package/CHANGELOG.md +32 -0
- package/dist/cli.js +2696 -899
- package/docs/before-you-start.md +57 -0
- package/docs/glossary.md +56 -0
- package/library/catalog/manifest.json +415 -338
- package/library/catalog/validation-rules.json +6 -2
- package/library/global/agents/request-classifier.md +1 -1
- package/library/global/agents/request-scorer.md +1 -1
- package/library/global/settings-fragments/hooks.json +1 -1
- package/library/global/skills/haus-workflow/references/new.md +18 -11
- package/library/global/skills/request/SKILL.md +315 -23
- package/library/global/skills/request/scripts/compare-scores.mjs +57 -7
- package/library/global/skills/request/scripts/contract-check.mjs +6 -17
- package/library/global/skills/request/scripts/lib.mjs +15 -0
- package/library/global/skills/request/scripts/quote-repair.mjs +166 -0
- package/package.json +5 -2
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Before you start
|
|
2
|
+
|
|
3
|
+
What your machine needs before the first haus command, and what to do when one of
|
|
4
|
+
them is missing. You do not need to read this if `haus doctor --prereqs` says the
|
|
5
|
+
machine is ready.
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
haus doctor --prereqs
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
That command checks everything on this page and prints the fix beside anything that is
|
|
12
|
+
missing. Run it first; come back here only for the detail.
|
|
13
|
+
|
|
14
|
+
## What haus needs
|
|
15
|
+
|
|
16
|
+
| You need | What haus uses it for | If it is missing |
|
|
17
|
+
| --------------------- | ------------------------------------------------ | ------------------------------------------------------------------------ |
|
|
18
|
+
| **Node 22 or newer** | running haus itself | `nvm install 22` (or install Node 22 from nodejs.org) |
|
|
19
|
+
| **git** | reading the project, and every worktree command | macOS: `xcode-select --install`, or `brew install git` |
|
|
20
|
+
| **GitHub CLI (`gh`)** | signing in to the catalog haus installs from | `brew install gh`, then `gh auth login` |
|
|
21
|
+
| **A GitHub sign-in** | the catalog repository is private | `gh auth login` — see below |
|
|
22
|
+
| **Claude Code** | the editor haus configures, and the `claude` CLI | install from <https://claude.com/claude-code>, then reopen your terminal |
|
|
23
|
+
| **Network access** | fetching the catalog | connect, or use an offline bundle (`docs/cli.md` → offline) |
|
|
24
|
+
|
|
25
|
+
## The one that catches everybody: signing in to GitHub
|
|
26
|
+
|
|
27
|
+
haus installs its skills and agents from a **private** catalog repository. GitHub
|
|
28
|
+
answers a signed-out read of a private repository with **404**, not "please sign in" —
|
|
29
|
+
so if you are not signed in, the first command reports that a file could not be
|
|
30
|
+
fetched, and it looks like the network or the tool is broken. It is neither.
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
gh auth login # sign in once
|
|
34
|
+
haus doctor --prereqs # confirm
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
If you use a token instead of the GitHub CLI:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
export GITHUB_TOKEN=$(gh auth token) # or: export HAUS_GITHUB_TOKEN=<your token>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
If you are signed in and the catalog still refuses, your account does not have access
|
|
44
|
+
to the catalog repository yet — ask a maintainer to add you, rather than signing in
|
|
45
|
+
again.
|
|
46
|
+
|
|
47
|
+
## Then what
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
haus init # set this project up
|
|
51
|
+
haus doctor # check the setup afterwards
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Both are safe to re-run. `haus init` shows you what it will do before writing
|
|
55
|
+
anything, and everything haus writes is backed up first.
|
|
56
|
+
|
|
57
|
+
New to the vocabulary — skill, agent, hook, ADR? See [the glossary](glossary.md).
|
package/docs/glossary.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Glossary
|
|
2
|
+
|
|
3
|
+
One screen of the words haus uses, in plain language. Written for someone who is not a
|
|
4
|
+
developer and does not need to become one to use this tool.
|
|
5
|
+
|
|
6
|
+
**Claude Code** — the coding assistant this tool configures. haus does not replace it;
|
|
7
|
+
it sets up what Claude Code reads so its answers fit your project.
|
|
8
|
+
|
|
9
|
+
**Skill** — a short document that teaches the assistant how something is done here:
|
|
10
|
+
how you write tests, how you name things, how a deploy goes. Installed into
|
|
11
|
+
`.claude/skills/`.
|
|
12
|
+
|
|
13
|
+
**Agent** — a specialist the assistant can hand a job to, like a code reviewer or a
|
|
14
|
+
security reviewer. Installed into `.claude/agents/`.
|
|
15
|
+
|
|
16
|
+
**Rule** — a standing instruction the assistant follows in this project, kept in
|
|
17
|
+
`.claude/rules/`. Shorter than a skill and always in effect.
|
|
18
|
+
|
|
19
|
+
**Command** (or slash command) — something you can invoke by name in Claude Code, like
|
|
20
|
+
`/docs`. haus installs a few, and the catalog can add more.
|
|
21
|
+
|
|
22
|
+
**Hook** — a check that runs automatically at a specific moment: before a command runs,
|
|
23
|
+
when a session starts. haus installs hooks that block dangerous commands and stop the
|
|
24
|
+
assistant reading files that hold secrets. You do not invoke a hook; it fires on its own.
|
|
25
|
+
|
|
26
|
+
**Catalog** — the shared library of skills, agents, and rules that haus installs from.
|
|
27
|
+
It lives in a private repository, which is why haus needs you signed in to GitHub.
|
|
28
|
+
|
|
29
|
+
**Recommendation** — haus's answer to "which of those items does this project need",
|
|
30
|
+
based on what it finds in the project. Stored in `.haus-workflow/recommendation.json`,
|
|
31
|
+
which is deliberately not committed: it is a local answer, recomputed whenever you ask.
|
|
32
|
+
|
|
33
|
+
**Lockfile** (`.haus-workflow/haus.lock.json`) — the record of what haus installed and
|
|
34
|
+
which version. This one **is** committed, so everyone on the team gets the same set.
|
|
35
|
+
|
|
36
|
+
**ADR** (Architecture Decision Record) — a short note recording a decision and why it
|
|
37
|
+
was made, kept in `docs/decisions/`. Written once; superseded by a later ADR rather
|
|
38
|
+
than edited, so the reasoning survives.
|
|
39
|
+
|
|
40
|
+
**Managed file / managed block** — a file, or a marked section inside one, that haus
|
|
41
|
+
writes and re-writes. Editing it by hand is not useful: the next `haus apply` restores
|
|
42
|
+
haus's version, and haus tells you it found an edit. Change the source, not the output.
|
|
43
|
+
|
|
44
|
+
**Apply** — writing haus's decisions to disk (`haus apply --write`). Always backs up
|
|
45
|
+
first, into `.haus-workflow/backups/`.
|
|
46
|
+
|
|
47
|
+
**Doctor** (`haus doctor`) — the health check. It reports what is set up, what drifted,
|
|
48
|
+
and what to run to fix each finding. `haus doctor --prereqs` checks the machine
|
|
49
|
+
instead of the project.
|
|
50
|
+
|
|
51
|
+
**Worktree** — a second working copy of the same repository, so two pieces of work can
|
|
52
|
+
proceed without disturbing each other. haus can set one up per repository in a
|
|
53
|
+
workspace.
|
|
54
|
+
|
|
55
|
+
**Workspace** — several repositories worked on together as one unit, described by a
|
|
56
|
+
`haus.workspace.yaml`.
|