@tekyzinc/gsd-t 2.28.12 → 2.28.13
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.
|
@@ -32,12 +32,17 @@ Report: test pass/fail status and any coverage gaps found."
|
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
**OBSERVABILITY LOGGING (MANDATORY):**
|
|
35
|
-
Before spawning
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
Before spawning — run via Bash:
|
|
36
|
+
`T_START=$(date +%s) && DT_START=$(date +"%Y-%m-%d %H:%M") && TOK_START=${CLAUDE_CONTEXT_TOKENS_USED:-0} && TOK_MAX=${CLAUDE_CONTEXT_TOKENS_MAX:-200000}`
|
|
37
|
+
After subagent returns — run via Bash:
|
|
38
|
+
`T_END=$(date +%s) && DT_END=$(date +"%Y-%m-%d %H:%M") && TOK_END=${CLAUDE_CONTEXT_TOKENS_USED:-0} && DURATION=$((T_END-T_START))`
|
|
39
|
+
Compute tokens and compaction:
|
|
40
|
+
- No compaction (TOK_END >= TOK_START): `TOKENS=$((TOK_END-TOK_START))`, COMPACTED=null
|
|
41
|
+
- Compaction detected (TOK_END < TOK_START): `TOKENS=$(((TOK_MAX-TOK_START)+TOK_END))`, COMPACTED=$DT_END
|
|
42
|
+
Append to `.gsd-t/token-log.md` (create with header `| Datetime-start | Datetime-end | Command | Step | Model | Duration(s) | Notes | Tokens | Compacted |` if missing):
|
|
43
|
+
`| {DT_START} | {DT_END} | gsd-t-execute | Step 2 | haiku | {DURATION}s | task: {task-name}, {pass/fail} | {TOKENS} | {COMPACTED} |`
|
|
39
44
|
If QA found issues, append each to `.gsd-t/qa-issues.md` (create with header `| Date | Command | Step | Model | Duration(s) | Severity | Finding |` if missing):
|
|
40
|
-
`| {
|
|
45
|
+
`| {DT_START} | gsd-t-execute | Step 2 | haiku | {DURATION}s | {severity} | {finding} |`
|
|
41
46
|
|
|
42
47
|
QA failure on any task blocks proceeding to the next task.
|
|
43
48
|
|
|
@@ -101,12 +101,17 @@ Report: boundary-by-boundary test results with pass/fail counts."
|
|
|
101
101
|
```
|
|
102
102
|
|
|
103
103
|
**OBSERVABILITY LOGGING (MANDATORY):**
|
|
104
|
-
Before spawning
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
104
|
+
Before spawning — run via Bash:
|
|
105
|
+
`T_START=$(date +%s) && DT_START=$(date +"%Y-%m-%d %H:%M") && TOK_START=${CLAUDE_CONTEXT_TOKENS_USED:-0} && TOK_MAX=${CLAUDE_CONTEXT_TOKENS_MAX:-200000}`
|
|
106
|
+
After subagent returns — run via Bash:
|
|
107
|
+
`T_END=$(date +%s) && DT_END=$(date +"%Y-%m-%d %H:%M") && TOK_END=${CLAUDE_CONTEXT_TOKENS_USED:-0} && DURATION=$((T_END-T_START))`
|
|
108
|
+
Compute tokens and compaction:
|
|
109
|
+
- No compaction (TOK_END >= TOK_START): `TOKENS=$((TOK_END-TOK_START))`, COMPACTED=null
|
|
110
|
+
- Compaction detected (TOK_END < TOK_START): `TOKENS=$(((TOK_MAX-TOK_START)+TOK_END))`, COMPACTED=$DT_END
|
|
111
|
+
Append to `.gsd-t/token-log.md` (create with header `| Datetime-start | Datetime-end | Command | Step | Model | Duration(s) | Notes | Tokens | Compacted |` if missing):
|
|
112
|
+
`| {DT_START} | {DT_END} | gsd-t-integrate | Step 5 | haiku | {DURATION}s | {pass/fail}, {N} boundaries tested | {TOKENS} | {COMPACTED} |`
|
|
108
113
|
If QA found issues, append each to `.gsd-t/qa-issues.md` (create with header `| Date | Command | Step | Model | Duration(s) | Severity | Finding |` if missing):
|
|
109
|
-
`| {
|
|
114
|
+
`| {DT_START} | gsd-t-integrate | Step 5 | haiku | {DURATION}s | {severity} | {finding} |`
|
|
110
115
|
|
|
111
116
|
QA failure blocks integration completion.
|
|
112
117
|
|
package/commands/gsd-t-plan.md
CHANGED
|
@@ -192,12 +192,17 @@ Report: PASS (all checks pass) or FAIL with specific gaps listed."
|
|
|
192
192
|
```
|
|
193
193
|
|
|
194
194
|
**OBSERVABILITY LOGGING (MANDATORY):**
|
|
195
|
-
Before spawning
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
195
|
+
Before spawning — run via Bash:
|
|
196
|
+
`T_START=$(date +%s) && DT_START=$(date +"%Y-%m-%d %H:%M") && TOK_START=${CLAUDE_CONTEXT_TOKENS_USED:-0} && TOK_MAX=${CLAUDE_CONTEXT_TOKENS_MAX:-200000}`
|
|
197
|
+
After subagent returns — run via Bash:
|
|
198
|
+
`T_END=$(date +%s) && DT_END=$(date +"%Y-%m-%d %H:%M") && TOK_END=${CLAUDE_CONTEXT_TOKENS_USED:-0} && DURATION=$((T_END-T_START))`
|
|
199
|
+
Compute tokens and compaction:
|
|
200
|
+
- No compaction (TOK_END >= TOK_START): `TOKENS=$((TOK_END-TOK_START))`, COMPACTED=null
|
|
201
|
+
- Compaction detected (TOK_END < TOK_START): `TOKENS=$(((TOK_MAX-TOK_START)+TOK_END))`, COMPACTED=$DT_END
|
|
202
|
+
Append to `.gsd-t/token-log.md` (create with header `| Datetime-start | Datetime-end | Command | Step | Model | Duration(s) | Notes | Tokens | Compacted |` if missing):
|
|
203
|
+
`| {DT_START} | {DT_END} | gsd-t-plan | Step 7 | haiku | {DURATION}s | {PASS/FAIL}, iteration {N} | {TOKENS} | {COMPACTED} |`
|
|
199
204
|
If validation FAIL, append each gap to `.gsd-t/qa-issues.md` (create with header `| Date | Command | Step | Model | Duration(s) | Severity | Finding |` if missing):
|
|
200
|
-
`| {
|
|
205
|
+
`| {DT_START} | gsd-t-plan | Step 7 | haiku | {DURATION}s | medium | {gap description} |`
|
|
201
206
|
|
|
202
207
|
**If FAIL**: Fix the identified gaps (up to 3 iterations). If still failing after 3 iterations, STOP and report to user with the specific gaps. Plan cannot proceed until validation PASSES.
|
|
203
208
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tekyzinc/gsd-t",
|
|
3
|
-
"version": "2.28.
|
|
3
|
+
"version": "2.28.13",
|
|
4
4
|
"description": "GSD-T: Contract-Driven Development for Claude Code — 45 slash commands with backlog management, impact analysis, test sync, and milestone archival",
|
|
5
5
|
"author": "Tekyz, Inc.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -93,8 +93,8 @@ function cleanupOldHeartbeats(gsdtDir) {
|
|
|
93
93
|
const EVENT_HANDLERS = {
|
|
94
94
|
SessionStart: (h) => ({ evt: "session_start", data: { source: h.source, model: h.model } }),
|
|
95
95
|
PostToolUse: (h) => ({ evt: "tool", tool: h.tool_name, agent_id: h.agent_id || null, data: summarize(h.tool_name, h.tool_input) }),
|
|
96
|
-
SubagentStart: (h) => ({ evt: "agent_spawn", data: { agent_id: h.agent_id, agent_type: h.agent_type, parent_id: h.parent_agent_id || h.session_id } }),
|
|
97
|
-
SubagentStop: (h) => ({ evt: "agent_stop", data: { agent_id: h.agent_id, agent_type: h.agent_type, parent_id: h.parent_agent_id || h.session_id } }),
|
|
96
|
+
SubagentStart: (h) => ({ evt: "agent_spawn", data: { agent_id: h.agent_id, agent_type: h.agent_type, parent_id: h.parent_agent_id || h.session_id, tokens: process.env.CLAUDE_CONTEXT_TOKENS_USED ? parseInt(process.env.CLAUDE_CONTEXT_TOKENS_USED, 10) : null } }),
|
|
97
|
+
SubagentStop: (h) => ({ evt: "agent_stop", data: { agent_id: h.agent_id, agent_type: h.agent_type, parent_id: h.parent_agent_id || h.session_id, tokens: process.env.CLAUDE_CONTEXT_TOKENS_USED ? parseInt(process.env.CLAUDE_CONTEXT_TOKENS_USED, 10) : null } }),
|
|
98
98
|
TaskCompleted: (h) => ({ evt: "task_done", data: { task: h.task_subject, agent: h.teammate_name } }),
|
|
99
99
|
TeammateIdle: (h) => ({ evt: "agent_idle", data: { agent: h.teammate_name, team: h.team_name } }),
|
|
100
100
|
Notification: (h) => ({ evt: "notification", data: { message: scrubSecrets(h.message), title: scrubSecrets(h.title) } }),
|