tap-the-sign 0.2.0 → 0.2.2

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/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ <img width="500" height="740" alt="tapthesign 2" src="https://github.com/user-attachments/assets/c938c158-d1b4-4cc2-90b5-05bdd5fc7db5" />
2
+
1
3
  # Tap the Sign
2
4
 
3
5
  Auto **thermo sign-off** on your plan before you build.
@@ -30,7 +32,7 @@ On Pass 3: Thermo-nuclear subagent on final diff; zero HIGH/MID.
30
32
 
31
33
  3. After the plan is updated with the pre-flight section, the hook stops (no infinite loop).
32
34
 
33
- If the thermo skill is missing, planning still works; the auto follow-up is **skipped** with a warning in the Hooks output channel.
35
+ If the thermo skill is missing, planning still works; the hook auto-sends a **chat follow-up** with install instructions (also logged to the Hooks output channel).
34
36
 
35
37
  ## Quick start
36
38
 
@@ -39,72 +41,53 @@ npx tap-the-sign install && npx tap-the-sign install-thermo && npx tap-the-sign
39
41
  npx tap-the-sign doctor
40
42
  ```
41
43
 
42
- **Bun:**
43
-
44
- ```bash
45
- bunx tap-the-sign install && bunx tap-the-sign install-thermo && bunx tap-the-sign on
46
- ```
47
-
48
44
  Use Plan mode in Cursor, Claude Code, or Codex.
49
45
 
50
- ## Install paths
51
-
52
- ### 1. npm / npx
46
+ ## Install
53
47
 
54
48
  ```bash
55
- npx tap-the-sign install # all IDEs, project-local
49
+ npx tap-the-sign install # all IDEs, project-local (default)
56
50
  npx tap-the-sign install --global # user-global (~/.cursor, ~/.claude, ~/.codex)
57
- npx tap-the-sign install-thermo # skill only (recommended)
51
+ npx tap-the-sign install-thermo # thermo skill only (recommended)
58
52
  npx tap-the-sign install --no-codex # subset of IDEs
59
53
  ```
60
54
 
61
- ### 2. Bun / bunx
55
+ From a git clone:
62
56
 
63
57
  ```bash
64
- bunx tap-the-sign install
65
- bunx tap-the-sign install-thermo
66
- bunx tap-the-sign on
58
+ git clone https://github.com/john-prem/tap-the-sign.git
59
+ cd tap-the-sign
60
+ ./install.sh
61
+ npx tap-the-sign install-thermo && npx tap-the-sign on
67
62
  ```
68
63
 
69
- From a repo clone:
64
+ Or one-liner:
70
65
 
71
66
  ```bash
72
- git clone https://github.com/your-org/tap-the-sign.git
73
- cd tap-the-sign
74
- ./install.bun.sh
75
- bun src/cli.mjs install-thermo && bun src/cli.mjs on
67
+ curl -fsSL https://raw.githubusercontent.com/john-prem/tap-the-sign/main/install.sh | bash
68
+ npx tap-the-sign install-thermo && npx tap-the-sign on
76
69
  ```
77
70
 
78
- Hook scripts prefer **Bun** at runtime when `bun` is on `PATH`, otherwise Node 18+.
71
+ Requires **Node.js 18+**.
79
72
 
80
- ### 3. Git plugin (IDE-native)
73
+ ### Git plugin (IDE-native)
81
74
 
82
75
  | IDE | Install |
83
76
  |-----|---------|
84
- | **Cursor** | `/add-plugin your-org/tap-the-sign` |
77
+ | **Cursor** | `/add-plugin john-prem/tap-the-sign` |
85
78
  | **Claude Code** | `/plugin marketplace add …` then `/plugin install tap-the-sign@…` |
86
79
  | **Codex** | Install plugin; trust hooks via `/hooks` |
87
80
 
88
- Then run `tap-the-sign on` (or `/tap-the-sign-on` in Cursor). Plugins ship wiring, not default-on.
89
-
90
- **Thermo skill:** `tap-the-sign install-thermo` or `/add-plugin cursor-team-kit` (full plugin + subagent for Pass 3).
91
-
92
- ### 4. curl / install.sh
93
-
94
- ```bash
95
- curl -fsSL https://raw.githubusercontent.com/your-org/tap-the-sign/main/install.sh | bash
96
- # then:
97
- npx tap-the-sign install-thermo && npx tap-the-sign on
98
- ```
81
+ Then run `npx tap-the-sign on` (or `/tap-the-sign-on` in Cursor). Plugins ship wiring, not default-on.
99
82
 
100
- Or clone and run `./install.sh` (uses Bun if installed, else Node).
83
+ **Thermo skill:** `npx tap-the-sign install-thermo` or `/add-plugin cursor-team-kit` (full plugin + subagent for Pass 3).
101
84
 
102
85
  ## Thermo skill
103
86
 
104
87
  **Recommended (skill only):**
105
88
 
106
89
  ```bash
107
- tap-the-sign install-thermo
90
+ npx tap-the-sign install-thermo
108
91
  # equivalent:
109
92
  npx skills add cursor/plugins --skill thermo-nuclear-code-quality-review \
110
93
  -a cursor -a claude-code -a codex --copy -y
@@ -122,12 +105,12 @@ npx skills add cursor/plugins --skill thermo-nuclear-code-quality-review \
122
105
 
123
106
  | Command | Action |
124
107
  |---------|--------|
125
- | `tap-the-sign on` | Enable hook |
126
- | `tap-the-sign off` | Disable hook |
127
- | `tap-the-sign status` | Show hook + skill status |
128
- | `tap-the-sign doctor` | Fail if thermo skill missing |
129
- | `tap-the-sign doctor --fix` | Run `install-thermo` if skill missing |
130
- | `tap-the-sign install-thermo` | Install thermo skill via `npx skills add` |
108
+ | `npx tap-the-sign on` | Enable hook |
109
+ | `npx tap-the-sign off` | Disable hook |
110
+ | `npx tap-the-sign status` | Show hook + skill status |
111
+ | `npx tap-the-sign doctor` | Fail if thermo skill missing |
112
+ | `npx tap-the-sign doctor --fix` | Run `install-thermo` if skill missing |
113
+ | `npx tap-the-sign install-thermo` | Install thermo skill via `npx skills add` |
131
114
 
132
115
  **Cursor slash commands:** `/tap-the-sign-on`, `/tap-the-sign-off`, `/tap-the-sign-status`
133
116
 
@@ -150,7 +133,7 @@ See [docs/REQUIREMENTS.md](docs/REQUIREMENTS.md).
150
133
  ## Uninstall
151
134
 
152
135
  ```bash
153
- tap-the-sign uninstall
136
+ npx tap-the-sign uninstall
154
137
  ```
155
138
 
156
139
  Also removes legacy `plan-sandwich` hook entries if present.
@@ -49,7 +49,7 @@ tap-the-sign doctor
49
49
  | Step | Behavior |
50
50
  |------|----------|
51
51
  | Plan mode submit | Allowed — hook arms normally |
52
- | Post-plan follow-up | **Skipped** — warning on stderr / systemMessage |
52
+ | Post-plan follow-up | **Skipped** — warning follow-up in chat + Hooks output |
53
53
  | `tap-the-sign doctor` | Exits non-zero with install instructions |
54
54
  | `tap-the-sign doctor --fix` | Attempts `install-thermo` |
55
55
 
@@ -28,6 +28,5 @@ Be careful to not introduce any blocker higher than LOW and checking three times
28
28
  On Pass 3: Thermo-nuclear subagent on final diff; zero HIGH/MID.`;
29
29
 
30
30
  export const SKILL_MISSING_WARNING =
31
- 'tap-the-sign: thermo-nuclear-code-quality-review skill not found. ' +
32
- 'Run: tap-the-sign install-thermo (or /add-plugin cursor-team-kit). ' +
33
- 'Skipping auto pre-flight follow-up.';
31
+ 'tap-the-sign: thermo skill not found. Run: npx tap-the-sign install-thermo ' +
32
+ '(or /add-plugin cursor-team-kit). Thermo pre-flight was skipped.';
@@ -79,12 +79,9 @@ function respondFollowUp(host, message) {
79
79
  });
80
80
  }
81
81
 
82
- function respondWarning(host, warning) {
82
+ function respondSkillMissing(host, warning) {
83
83
  console.error(warning);
84
- if (host === 'cursor') {
85
- return respondEmpty();
86
- }
87
- return JSON.stringify({ systemMessage: warning });
84
+ return respondFollowUp(host, warning);
88
85
  }
89
86
 
90
87
  export async function runHook({ event, host }) {
@@ -134,7 +131,7 @@ export async function runHook({ event, host }) {
134
131
  if (phase === PHASE_PLANNING) {
135
132
  if (!isThermoSkillInstalled()) {
136
133
  transitionPhase(sessionId, PHASE_DONE);
137
- process.stdout.write(respondWarning(host, SKILL_MISSING_WARNING));
134
+ process.stdout.write(respondSkillMissing(host, SKILL_MISSING_WARNING));
138
135
  return;
139
136
  }
140
137
  transitionPhase(sessionId, PHASE_PREFLIGHT);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tap-the-sign",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Auto thermo sign-off after Plan mode plans. Requires thermo-nuclear-code-quality-review skill.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -33,11 +33,11 @@
33
33
  },
34
34
  "repository": {
35
35
  "type": "git",
36
- "url": "git+https://github.com/your-org/tap-the-sign.git"
36
+ "url": "git+https://github.com/john-prem/tap-the-sign.git"
37
37
  },
38
- "homepage": "https://github.com/your-org/tap-the-sign#readme",
38
+ "homepage": "https://github.com/john-prem/tap-the-sign#readme",
39
39
  "bugs": {
40
- "url": "https://github.com/your-org/tap-the-sign/issues"
40
+ "url": "https://github.com/john-prem/tap-the-sign/issues"
41
41
  },
42
42
  "license": "MIT",
43
43
  "keywords": [
package/src/constants.mjs CHANGED
@@ -28,6 +28,5 @@ Be careful to not introduce any blocker higher than LOW and checking three times
28
28
  On Pass 3: Thermo-nuclear subagent on final diff; zero HIGH/MID.`;
29
29
 
30
30
  export const SKILL_MISSING_WARNING =
31
- 'tap-the-sign: thermo-nuclear-code-quality-review skill not found. ' +
32
- 'Run: tap-the-sign install-thermo (or /add-plugin cursor-team-kit). ' +
33
- 'Skipping auto pre-flight follow-up.';
31
+ 'tap-the-sign: thermo skill not found. Run: npx tap-the-sign install-thermo ' +
32
+ '(or /add-plugin cursor-team-kit). Thermo pre-flight was skipped.';
@@ -79,12 +79,9 @@ function respondFollowUp(host, message) {
79
79
  });
80
80
  }
81
81
 
82
- function respondWarning(host, warning) {
82
+ function respondSkillMissing(host, warning) {
83
83
  console.error(warning);
84
- if (host === 'cursor') {
85
- return respondEmpty();
86
- }
87
- return JSON.stringify({ systemMessage: warning });
84
+ return respondFollowUp(host, warning);
88
85
  }
89
86
 
90
87
  export async function runHook({ event, host }) {
@@ -134,7 +131,7 @@ export async function runHook({ event, host }) {
134
131
  if (phase === PHASE_PLANNING) {
135
132
  if (!isThermoSkillInstalled()) {
136
133
  transitionPhase(sessionId, PHASE_DONE);
137
- process.stdout.write(respondWarning(host, SKILL_MISSING_WARNING));
134
+ process.stdout.write(respondSkillMissing(host, SKILL_MISSING_WARNING));
138
135
  return;
139
136
  }
140
137
  transitionPhase(sessionId, PHASE_PREFLIGHT);