@autocode-cli/autocode 0.1.10 → 0.1.12
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 +7 -6
- package/dist/cli/commands/comment.js +1 -1
- package/dist/cli/commands/comment.js.map +1 -1
- package/dist/cli/commands/init.js +1 -1
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/list.js +1 -1
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/move.js +2 -2
- package/dist/cli/commands/move.js.map +1 -1
- package/dist/cli/commands/new.js +1 -1
- package/dist/cli/commands/new.js.map +1 -1
- package/dist/cli/commands/next.js +1 -1
- package/dist/cli/commands/next.js.map +1 -1
- package/dist/cli/commands/serve.js +1 -1
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/commands/show.js +1 -1
- package/dist/cli/commands/show.js.map +1 -1
- package/dist/cli/commands/stats.d.ts +9 -0
- package/dist/cli/commands/stats.d.ts.map +1 -0
- package/dist/cli/commands/stats.js +108 -0
- package/dist/cli/commands/stats.js.map +1 -0
- package/dist/cli/parser.d.ts.map +1 -1
- package/dist/cli/parser.js +2 -0
- package/dist/cli/parser.js.map +1 -1
- package/dist/server/api.d.ts.map +1 -1
- package/dist/server/api.js +28 -16
- package/dist/server/api.js.map +1 -1
- package/dist/server/dashboard/pages/index.d.ts +1 -0
- package/dist/server/dashboard/pages/index.d.ts.map +1 -1
- package/dist/server/dashboard/pages/index.js +1 -0
- package/dist/server/dashboard/pages/index.js.map +1 -1
- package/dist/server/dashboard/pages/stats-page.d.ts +8 -0
- package/dist/server/dashboard/pages/stats-page.d.ts.map +1 -0
- package/dist/server/dashboard/pages/stats-page.js +624 -0
- package/dist/server/dashboard/pages/stats-page.js.map +1 -0
- package/dist/server/dashboard/scripts/index.d.ts.map +1 -1
- package/dist/server/dashboard/scripts/index.js +30 -1
- package/dist/server/dashboard/scripts/index.js.map +1 -1
- package/dist/server/dashboard/styles/base.d.ts.map +1 -1
- package/dist/server/dashboard/styles/base.js +9 -0
- package/dist/server/dashboard/styles/base.js.map +1 -1
- package/dist/server/dashboard.d.ts +1 -1
- package/dist/server/dashboard.d.ts.map +1 -1
- package/dist/server/dashboard.js +1 -1
- package/dist/server/dashboard.js.map +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +8 -1
- package/dist/server/index.js.map +1 -1
- package/dist/services/claude.d.ts +9 -0
- package/dist/services/claude.d.ts.map +1 -1
- package/dist/services/claude.js +105 -2
- package/dist/services/claude.js.map +1 -1
- package/dist/services/stats.d.ts +58 -0
- package/dist/services/stats.d.ts.map +1 -0
- package/dist/services/stats.js +196 -0
- package/dist/services/stats.js.map +1 -0
- package/dist/utils/fs.js +1 -1
- package/dist/utils/fs.js.map +1 -1
- package/package.json +1 -1
- package/templates/catalog.yaml +1 -1
- package/templates/prompts/backlog.en.md +3 -3
- package/templates/prompts/backlog.fr.md +3 -3
- package/templates/prompts/changelog.en.md +4 -9
- package/templates/prompts/changelog.fr.md +4 -9
- package/templates/prompts/deploy-prod.en.md +4 -8
- package/templates/prompts/deploy-prod.fr.md +4 -8
- package/templates/prompts/deploy-staging.en.md +5 -9
- package/templates/prompts/deploy-staging.fr.md +5 -9
- package/templates/prompts/design.en.md +3 -3
- package/templates/prompts/design.fr.md +3 -3
- package/templates/prompts/dev.en.md +5 -6
- package/templates/prompts/dev.fr.md +5 -6
- package/templates/prompts/done.en.md +2 -2
- package/templates/prompts/done.fr.md +2 -2
- package/templates/prompts/git-commit.en.md +5 -7
- package/templates/prompts/git-commit.fr.md +5 -7
- package/templates/prompts/git-push.en.md +4 -8
- package/templates/prompts/git-push.fr.md +4 -8
- package/templates/prompts/git-tag.en.md +4 -8
- package/templates/prompts/git-tag.fr.md +4 -8
- package/templates/prompts/in-progress.en.md +4 -6
- package/templates/prompts/in-progress.fr.md +4 -6
- package/templates/prompts/qualification.en.md +3 -3
- package/templates/prompts/qualification.fr.md +3 -3
- package/templates/prompts/ready.en.md +4 -6
- package/templates/prompts/ready.fr.md +4 -6
- package/templates/prompts/retest-cypress.en.md +4 -5
- package/templates/prompts/retest-cypress.fr.md +4 -5
- package/templates/prompts/retest-playwright.en.md +3 -3
- package/templates/prompts/retest-playwright.fr.md +3 -3
- package/templates/prompts/retest.en.md +3 -3
- package/templates/prompts/retest.fr.md +3 -3
- package/templates/prompts/review-best-practices.en.md +4 -5
- package/templates/prompts/review-best-practices.fr.md +4 -5
- package/templates/prompts/review-code.en.md +3 -3
- package/templates/prompts/review-code.fr.md +3 -3
- package/templates/prompts/review-consistency.en.md +4 -5
- package/templates/prompts/review-consistency.fr.md +4 -5
- package/templates/prompts/review-no-duplication.en.md +4 -5
- package/templates/prompts/review-no-duplication.fr.md +4 -5
- package/templates/prompts/review-security.en.md +4 -5
- package/templates/prompts/review-security.fr.md +4 -5
- package/templates/prompts/specification.en.md +3 -3
- package/templates/prompts/specification.fr.md +3 -3
- package/templates/prompts/splitter.en.md +12 -4
- package/templates/prompts/splitter.fr.md +12 -5
- package/templates/prompts/testing-cypress.en.md +4 -5
- package/templates/prompts/testing-cypress.fr.md +4 -5
- package/templates/prompts/testing-integration.en.md +4 -5
- package/templates/prompts/testing-integration.fr.md +4 -5
- package/templates/prompts/testing-playwright.en.md +3 -3
- package/templates/prompts/testing-playwright.fr.md +3 -3
- package/templates/prompts/testing-unit.en.md +4 -5
- package/templates/prompts/testing-unit.fr.md +4 -5
- package/templates/prompts/update-docs.en.md +4 -5
- package/templates/prompts/update-docs.fr.md +4 -5
- package/templates/prompts/validate-staging.en.md +9 -14
- package/templates/prompts/validate-staging.fr.md +9 -14
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Stats Service - Track Claude CLI usage metrics
|
|
3
|
+
*
|
|
4
|
+
* Persists stats to .autocode/stats.json
|
|
5
|
+
*/
|
|
6
|
+
import { join } from 'node:path';
|
|
7
|
+
import { spawnSync } from 'node:child_process';
|
|
8
|
+
import { readFileSafe, writeFileSafe, ensureDir } from '../utils/fs.js';
|
|
9
|
+
import { getConfig } from '../utils/config.js';
|
|
10
|
+
// ============================================
|
|
11
|
+
// STATE
|
|
12
|
+
// ============================================
|
|
13
|
+
const MAX_HISTORY = 100;
|
|
14
|
+
let currentStats = null;
|
|
15
|
+
let sessionStartedAt = null;
|
|
16
|
+
// ============================================
|
|
17
|
+
// HELPERS
|
|
18
|
+
// ============================================
|
|
19
|
+
function getStatsFilePath() {
|
|
20
|
+
const config = getConfig();
|
|
21
|
+
return join(config.root, '.autocode', 'stats.json');
|
|
22
|
+
}
|
|
23
|
+
function getDefaultStats() {
|
|
24
|
+
return {
|
|
25
|
+
profile: '',
|
|
26
|
+
model: '',
|
|
27
|
+
totals: {
|
|
28
|
+
tokensInput: 0,
|
|
29
|
+
tokensOutput: 0,
|
|
30
|
+
callCount: 0,
|
|
31
|
+
costUsd: 0,
|
|
32
|
+
},
|
|
33
|
+
session: {
|
|
34
|
+
startedAt: new Date().toISOString(),
|
|
35
|
+
tokensInput: 0,
|
|
36
|
+
tokensOutput: 0,
|
|
37
|
+
callCount: 0,
|
|
38
|
+
costUsd: 0,
|
|
39
|
+
},
|
|
40
|
+
history: [],
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get Claude profile from claude config
|
|
45
|
+
*/
|
|
46
|
+
function fetchClaudeProfile() {
|
|
47
|
+
try {
|
|
48
|
+
const result = spawnSync('claude', ['config', 'get', 'profile'], {
|
|
49
|
+
encoding: 'utf-8',
|
|
50
|
+
timeout: 5000,
|
|
51
|
+
});
|
|
52
|
+
if (result.status === 0 && result.stdout) {
|
|
53
|
+
return result.stdout.trim() || 'default';
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
// Ignore errors
|
|
58
|
+
}
|
|
59
|
+
return 'default';
|
|
60
|
+
}
|
|
61
|
+
// ============================================
|
|
62
|
+
// PUBLIC API
|
|
63
|
+
// ============================================
|
|
64
|
+
/**
|
|
65
|
+
* Initialize stats - load from file or create default
|
|
66
|
+
*/
|
|
67
|
+
export function initStats() {
|
|
68
|
+
if (currentStats)
|
|
69
|
+
return currentStats;
|
|
70
|
+
const filePath = getStatsFilePath();
|
|
71
|
+
const content = readFileSafe(filePath);
|
|
72
|
+
if (content) {
|
|
73
|
+
try {
|
|
74
|
+
currentStats = JSON.parse(content);
|
|
75
|
+
// Start new session
|
|
76
|
+
sessionStartedAt = new Date().toISOString();
|
|
77
|
+
currentStats.session = {
|
|
78
|
+
startedAt: sessionStartedAt,
|
|
79
|
+
tokensInput: 0,
|
|
80
|
+
tokensOutput: 0,
|
|
81
|
+
callCount: 0,
|
|
82
|
+
costUsd: 0,
|
|
83
|
+
};
|
|
84
|
+
// Migrate old stats: add costUsd if missing
|
|
85
|
+
if (currentStats.totals.costUsd === undefined) {
|
|
86
|
+
currentStats.totals.costUsd = 0;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
currentStats = getDefaultStats();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
currentStats = getDefaultStats();
|
|
95
|
+
}
|
|
96
|
+
// Fetch profile if not set
|
|
97
|
+
if (!currentStats.profile) {
|
|
98
|
+
currentStats.profile = fetchClaudeProfile();
|
|
99
|
+
}
|
|
100
|
+
sessionStartedAt = currentStats.session.startedAt;
|
|
101
|
+
saveStats();
|
|
102
|
+
return currentStats;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Save stats to file
|
|
106
|
+
*/
|
|
107
|
+
function saveStats() {
|
|
108
|
+
if (!currentStats)
|
|
109
|
+
return;
|
|
110
|
+
const filePath = getStatsFilePath();
|
|
111
|
+
ensureDir(join(getConfig().root, '.autocode'));
|
|
112
|
+
writeFileSafe(filePath, JSON.stringify(currentStats, null, 2));
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Record a Claude call with its metrics
|
|
116
|
+
*/
|
|
117
|
+
export function recordCall(call) {
|
|
118
|
+
if (!currentStats) {
|
|
119
|
+
initStats();
|
|
120
|
+
}
|
|
121
|
+
// Update model if provided
|
|
122
|
+
if (call.model && currentStats) {
|
|
123
|
+
currentStats.model = call.model;
|
|
124
|
+
}
|
|
125
|
+
if (!currentStats)
|
|
126
|
+
return;
|
|
127
|
+
// Update totals
|
|
128
|
+
currentStats.totals.tokensInput += call.tokensInput;
|
|
129
|
+
currentStats.totals.tokensOutput += call.tokensOutput;
|
|
130
|
+
currentStats.totals.callCount += 1;
|
|
131
|
+
currentStats.totals.costUsd += call.costUsd || 0;
|
|
132
|
+
// Update session
|
|
133
|
+
currentStats.session.tokensInput += call.tokensInput;
|
|
134
|
+
currentStats.session.tokensOutput += call.tokensOutput;
|
|
135
|
+
currentStats.session.callCount += 1;
|
|
136
|
+
currentStats.session.costUsd += call.costUsd || 0;
|
|
137
|
+
// Add to history (limit to MAX_HISTORY)
|
|
138
|
+
currentStats.history.unshift(call);
|
|
139
|
+
if (currentStats.history.length > MAX_HISTORY) {
|
|
140
|
+
currentStats.history = currentStats.history.slice(0, MAX_HISTORY);
|
|
141
|
+
}
|
|
142
|
+
saveStats();
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Get current stats
|
|
146
|
+
*/
|
|
147
|
+
export function getStats() {
|
|
148
|
+
if (!currentStats) {
|
|
149
|
+
initStats();
|
|
150
|
+
}
|
|
151
|
+
return currentStats || getDefaultStats();
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Reset session stats (keeps totals)
|
|
155
|
+
*/
|
|
156
|
+
export function resetSession() {
|
|
157
|
+
if (!currentStats) {
|
|
158
|
+
initStats();
|
|
159
|
+
}
|
|
160
|
+
if (!currentStats)
|
|
161
|
+
return;
|
|
162
|
+
sessionStartedAt = new Date().toISOString();
|
|
163
|
+
currentStats.session = {
|
|
164
|
+
startedAt: sessionStartedAt,
|
|
165
|
+
tokensInput: 0,
|
|
166
|
+
tokensOutput: 0,
|
|
167
|
+
callCount: 0,
|
|
168
|
+
costUsd: 0,
|
|
169
|
+
};
|
|
170
|
+
saveStats();
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Update profile info (called after fetching from Claude)
|
|
174
|
+
*/
|
|
175
|
+
export function updateProfile(profile) {
|
|
176
|
+
if (!currentStats) {
|
|
177
|
+
initStats();
|
|
178
|
+
}
|
|
179
|
+
if (!currentStats)
|
|
180
|
+
return;
|
|
181
|
+
currentStats.profile = profile;
|
|
182
|
+
saveStats();
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Update model info (called after receiving from stream-json)
|
|
186
|
+
*/
|
|
187
|
+
export function updateModel(model) {
|
|
188
|
+
if (!currentStats) {
|
|
189
|
+
initStats();
|
|
190
|
+
}
|
|
191
|
+
if (!currentStats)
|
|
192
|
+
return;
|
|
193
|
+
currentStats.model = model;
|
|
194
|
+
saveStats();
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=stats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/services/stats.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/fs.js
CHANGED
|
@@ -85,7 +85,7 @@ export function getFileMtime(filePath) {
|
|
|
85
85
|
* Get the sequence number from .seq file
|
|
86
86
|
*/
|
|
87
87
|
export function getNextSequence(rootDir) {
|
|
88
|
-
const seqFile = join(rootDir, '.seq');
|
|
88
|
+
const seqFile = join(rootDir, '.autocode', '.seq');
|
|
89
89
|
let seq = 1;
|
|
90
90
|
if (existsSync(seqFile)) {
|
|
91
91
|
const content = readFileSync(seqFile, 'utf-8').trim();
|
package/dist/utils/fs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACtI,OAAO,EAAE,OAAO,EAAE,IAAI,EAAW,MAAM,WAAW,CAAC;AAEnD;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,OAAe;IAC7D,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7B,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,OAAO,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SACjD,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;SACpC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,OAAO,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SACjD,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;SAC/B,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,OAAe,EAAE,QAAgB;IACvD,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7B,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/templates/catalog.yaml
CHANGED
|
@@ -23,7 +23,7 @@ segments:
|
|
|
23
23
|
description: Ready for development
|
|
24
24
|
- slug: splitter
|
|
25
25
|
name: Splitter
|
|
26
|
-
description: Si un besoin est trop gros, il faut le splitter en pleins de petits tickets pour limiter la responsabilité ! on crée ces tickets avec `autocode new "<title>" "<description>" -p P2 -l "<labels>" -a "<criteria>" -s patch` une fois terminé et qu'on a RIEN oublié on vient `autocode move <key> <
|
|
26
|
+
description: Si un besoin est trop gros, il faut le splitter en pleins de petits tickets pour limiter la responsabilité ! on crée ces tickets avec `autocode new "<title>" "<description>" -p P2 -l "<labels>" -a "<criteria>" -s patch` une fois terminé et qu'on a RIEN oublié on vient `autocode move <ticket-key> <target-column-slug>` dans la colonne terminated. et on vient créer un nouveau ticket qui cite tous ceux qu'on vient de créer pour vérifier que le "tout" fonctionne bien ensemble et est bien cohérent !
|
|
27
27
|
action:
|
|
28
28
|
description: Columns for implementation and validation
|
|
29
29
|
columns:
|
|
@@ -16,10 +16,10 @@ Storage for new tickets. Tickets here need qualification before work can begin.
|
|
|
16
16
|
- Slightly out of scope (minor improvement, edge case): `autocode new "<title>" "<description>" -p P2 -l "<labels>" -a "<criteria>" -s patch -c ready`
|
|
17
17
|
- Significantly out of scope (new feature, major change): `autocode new "<title>" "<description>" -p P2 -l "<labels>" -a "<criteria>" -s patch`
|
|
18
18
|
- In scope: handle directly in current ticket
|
|
19
|
-
8. Document: `autocode comment <key> "Qualification done"`
|
|
20
|
-
9. Advance: `autocode next <key>`
|
|
19
|
+
8. Document: `autocode comment <ticket-key> "Qualification done"`
|
|
20
|
+
9. Advance: `autocode next <ticket-key>`
|
|
21
21
|
|
|
22
|
-
> Or return: `autocode move <key> <
|
|
22
|
+
> Or return: `autocode move <ticket-key> <target-column-slug>`
|
|
23
23
|
|
|
24
24
|
## Validation Criteria
|
|
25
25
|
|
|
@@ -16,10 +16,10 @@ Stockage des nouveaux tickets. Les tickets ici doivent etre qualifies avant de c
|
|
|
16
16
|
- Legerement hors scope (amelioration mineure, cas limite) : `autocode new "<titre>" "<description>" -p P2 -l "<labels>" -a "<criteres>" -s patch -c ready`
|
|
17
17
|
- Tres hors scope (nouvelle feature, changement majeur) : `autocode new "<titre>" "<description>" -p P2 -l "<labels>" -a "<criteres>" -s patch`
|
|
18
18
|
- Dans le scope : traiter directement dans le ticket actuel
|
|
19
|
-
8. Documenter : `autocode comment <key> "Qualification effectuee"`
|
|
20
|
-
9. Avancer : `autocode next <key>`
|
|
19
|
+
8. Documenter : `autocode comment <ticket-key> "Qualification effectuee"`
|
|
20
|
+
9. Avancer : `autocode next <ticket-key>`
|
|
21
21
|
|
|
22
|
-
> Ou retour : `autocode move <key> <
|
|
22
|
+
> Ou retour : `autocode move <ticket-key> <target-column-slug>`
|
|
23
23
|
|
|
24
24
|
## Criteres de Validation
|
|
25
25
|
|
|
@@ -12,15 +12,10 @@ Update the changelog with the changes made in this ticket. Document for users an
|
|
|
12
12
|
4. Add entry under "Unreleased" section
|
|
13
13
|
5. Use clear, user-facing language
|
|
14
14
|
6. Reference ticket key if applicable
|
|
15
|
-
7.
|
|
16
|
-
8.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
- In scope: handle directly in current ticket
|
|
20
|
-
9. Document: `autocode comment <key> "Changelog updated"`
|
|
21
|
-
10. Advance: `autocode next <key>`
|
|
22
|
-
|
|
23
|
-
> Or return: `autocode move <key> <targetColumn>`
|
|
15
|
+
7. Document: `autocode comment <ticket-key> "Changelog updated"`
|
|
16
|
+
8. Advance: `autocode next <ticket-key>`
|
|
17
|
+
|
|
18
|
+
> Or return: `autocode move <ticket-key> <target-column-slug>`
|
|
24
19
|
|
|
25
20
|
## Validation Criteria
|
|
26
21
|
|
|
@@ -12,15 +12,10 @@ Mettre a jour le changelog avec les changements effectues dans ce ticket. Docume
|
|
|
12
12
|
4. Ajouter une entree sous la section "Unreleased"
|
|
13
13
|
5. Utiliser un langage clair oriente utilisateur
|
|
14
14
|
6. Referencer la cle du ticket si applicable
|
|
15
|
-
7.
|
|
16
|
-
8.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
- Dans le scope : traiter directement dans le ticket actuel
|
|
20
|
-
9. Documenter : `autocode comment <key> "Changelog mis a jour"`
|
|
21
|
-
10. Avancer : `autocode next <key>`
|
|
22
|
-
|
|
23
|
-
> Ou retour : `autocode move <key> <targetColumn>`
|
|
15
|
+
7. Documenter : `autocode comment <ticket-key> "Changelog mis a jour"`
|
|
16
|
+
8. Avancer : `autocode next <ticket-key>`
|
|
17
|
+
|
|
18
|
+
> Ou retour : `autocode move <ticket-key> <target-column-slug>`
|
|
24
19
|
|
|
25
20
|
## Criteres de Validation
|
|
26
21
|
|
|
@@ -14,14 +14,10 @@ Deploy the release to production environment. Ensure zero-downtime deployment.
|
|
|
14
14
|
6. Verify critical functionality
|
|
15
15
|
7. Monitor logs for errors
|
|
16
16
|
8. If issues detected: rollback immediately
|
|
17
|
-
9.
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
10. Document: `autocode comment <key> "Deployed to production: v<version>"`
|
|
22
|
-
11. Advance: `autocode next <key>`
|
|
23
|
-
|
|
24
|
-
> Or rollback: `autocode move <key> <targetColumn>`
|
|
17
|
+
9. Document: `autocode comment <ticket-key> "Deployed to production: v<version>"`
|
|
18
|
+
10. Advance: `autocode next <ticket-key>`
|
|
19
|
+
|
|
20
|
+
> Or rollback: `autocode move <ticket-key> <target-column-slug>`
|
|
25
21
|
|
|
26
22
|
## Validation Criteria
|
|
27
23
|
|
|
@@ -14,14 +14,10 @@ Deployer la release en environnement de production. Assurer un deploiement sans
|
|
|
14
14
|
6. Verifier les fonctionnalites critiques
|
|
15
15
|
7. Surveiller les logs pour les erreurs
|
|
16
16
|
8. Si problemes detectes : rollback immediatement
|
|
17
|
-
9.
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
10. Documenter : `autocode comment <key> "Deploye en production : v<version>"`
|
|
22
|
-
11. Avancer : `autocode next <key>`
|
|
23
|
-
|
|
24
|
-
> Ou rollback : `autocode move <key> <targetColumn>`
|
|
17
|
+
9. Documenter : `autocode comment <ticket-key> "Deploye en production : v<version>"`
|
|
18
|
+
10. Avancer : `autocode next <ticket-key>`
|
|
19
|
+
|
|
20
|
+
> Ou rollback : `autocode move <ticket-key> <target-column-slug>`
|
|
25
21
|
|
|
26
22
|
## Criteres de Validation
|
|
27
23
|
|
|
@@ -6,23 +6,19 @@ Deploy changes to staging environment for validation.
|
|
|
6
6
|
|
|
7
7
|
## Actions
|
|
8
8
|
|
|
9
|
-
1. Verify
|
|
9
|
+
1. Verify git status is clean
|
|
10
10
|
2. Execute deployment to staging
|
|
11
11
|
3. Wait for deployment to complete
|
|
12
12
|
4. Verify deployment is stable
|
|
13
13
|
5. Document deployed version
|
|
14
|
-
6.
|
|
15
|
-
|
|
16
|
-
- Significantly out of scope (new feature, major change): `autocode new "<title>" "<description>" -p P2 -l "<labels>" -a "<criteria>" -s patch`
|
|
17
|
-
- In scope: handle directly in current ticket
|
|
18
|
-
7. Document: `autocode comment <key> "Deployed to staging"`
|
|
19
|
-
8. Advance: `autocode next <key>`
|
|
14
|
+
6. Document: `autocode comment <ticket-key> "Deployed to staging"`
|
|
15
|
+
7. Advance: `autocode next <ticket-key>`
|
|
20
16
|
|
|
21
|
-
> Or return: `autocode move <key> <
|
|
17
|
+
> Or return: `autocode move <ticket-key> <target-column-slug>`
|
|
22
18
|
|
|
23
19
|
## Validation Criteria
|
|
24
20
|
|
|
25
|
-
- [ ]
|
|
21
|
+
- [ ] Git status clean
|
|
26
22
|
- [ ] Deployment successful
|
|
27
23
|
- [ ] Application accessible in staging
|
|
28
24
|
- [ ] No startup errors
|
|
@@ -6,23 +6,19 @@ Deployer les changements sur l'environnement de staging pour validation.
|
|
|
6
6
|
|
|
7
7
|
## Actions
|
|
8
8
|
|
|
9
|
-
1. Verifier que
|
|
9
|
+
1. Verifier que git status est propre
|
|
10
10
|
2. Executer le deploiement vers staging
|
|
11
11
|
3. Attendre la fin du deploiement
|
|
12
12
|
4. Verifier que le deploiement est stable
|
|
13
13
|
5. Documenter la version deployee
|
|
14
|
-
6.
|
|
15
|
-
|
|
16
|
-
- Tres hors scope (nouvelle feature, changement majeur) : `autocode new "<titre>" "<description>" -p P2 -l "<labels>" -a "<criteres>" -s patch`
|
|
17
|
-
- Dans le scope : traiter directement dans le ticket actuel
|
|
18
|
-
7. Documenter : `autocode comment <key> "Deploye en staging"`
|
|
19
|
-
8. Avancer : `autocode next <key>`
|
|
14
|
+
6. Documenter : `autocode comment <ticket-key> "Deploye en staging"`
|
|
15
|
+
7. Avancer : `autocode next <ticket-key>`
|
|
20
16
|
|
|
21
|
-
> Ou retour : `autocode move <key> <
|
|
17
|
+
> Ou retour : `autocode move <ticket-key> <target-column-slug>`
|
|
22
18
|
|
|
23
19
|
## Criteres de Validation
|
|
24
20
|
|
|
25
|
-
- [ ]
|
|
21
|
+
- [ ] Git status propre
|
|
26
22
|
- [ ] Deploiement reussi
|
|
27
23
|
- [ ] Application accessible en staging
|
|
28
24
|
- [ ] Pas d'erreurs au demarrage
|
|
@@ -16,10 +16,10 @@ Create technical and/or UX design for the feature. Prepare mockups, diagrams, or
|
|
|
16
16
|
- Slightly out of scope (minor improvement, edge case): `autocode new "<title>" "<description>" -p P2 -l "<labels>" -a "<criteria>" -s patch -c ready`
|
|
17
17
|
- Significantly out of scope (new feature, major change): `autocode new "<title>" "<description>" -p P2 -l "<labels>" -a "<criteria>" -s patch`
|
|
18
18
|
- In scope: handle directly in current ticket
|
|
19
|
-
8. Document: `autocode comment <key> "Design complete: <summary>"`
|
|
20
|
-
9. Advance: `autocode next <key>`
|
|
19
|
+
8. Document: `autocode comment <ticket-key> "Design complete: <summary>"`
|
|
20
|
+
9. Advance: `autocode next <ticket-key>`
|
|
21
21
|
|
|
22
|
-
> Or return: `autocode move <key> <
|
|
22
|
+
> Or return: `autocode move <ticket-key> <target-column-slug>`
|
|
23
23
|
|
|
24
24
|
## Validation Criteria
|
|
25
25
|
|
|
@@ -16,10 +16,10 @@ Creer le design technique et/ou UX pour la fonctionnalite. Preparer les maquette
|
|
|
16
16
|
- Legerement hors scope (amelioration mineure, cas limite) : `autocode new "<titre>" "<description>" -p P2 -l "<labels>" -a "<criteres>" -s patch -c ready`
|
|
17
17
|
- Tres hors scope (nouvelle feature, changement majeur) : `autocode new "<titre>" "<description>" -p P2 -l "<labels>" -a "<criteres>" -s patch`
|
|
18
18
|
- Dans le scope : traiter directement dans le ticket actuel
|
|
19
|
-
8. Documenter : `autocode comment <key> "Design termine : <resume>"`
|
|
20
|
-
9. Avancer : `autocode next <key>`
|
|
19
|
+
8. Documenter : `autocode comment <ticket-key> "Design termine : <resume>"`
|
|
20
|
+
9. Avancer : `autocode next <ticket-key>`
|
|
21
21
|
|
|
22
|
-
> Ou retour : `autocode move <key> <
|
|
22
|
+
> Ou retour : `autocode move <ticket-key> <target-column-slug>`
|
|
23
23
|
|
|
24
24
|
## Criteres de Validation
|
|
25
25
|
|
|
@@ -11,16 +11,15 @@ Implement the feature or fix according to specifications. Write clean, maintaina
|
|
|
11
11
|
3. Implement the feature following coding standards
|
|
12
12
|
4. Add inline comments for complex logic
|
|
13
13
|
5. Handle edge cases and errors gracefully
|
|
14
|
-
6. Test locally before
|
|
15
|
-
7.
|
|
16
|
-
8. If out of scope work detected:
|
|
14
|
+
6. Test locally before proceeding
|
|
15
|
+
7. If out of scope work detected:
|
|
17
16
|
- Slightly out of scope (minor improvement, edge case): `autocode new "<title>" "<description>" -p P2 -l "<labels>" -a "<criteria>" -s patch -c ready`
|
|
18
17
|
- Significantly out of scope (new feature, major change): `autocode new "<title>" "<description>" -p P2 -l "<labels>" -a "<criteria>" -s patch`
|
|
19
18
|
- In scope: handle directly in current ticket
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
8. Document: `autocode comment <ticket-key> "Development complete: <files modified>"`
|
|
20
|
+
9. Advance: `autocode next <ticket-key>`
|
|
22
21
|
|
|
23
|
-
> Or return: `autocode move <key> <
|
|
22
|
+
> Or return: `autocode move <ticket-key> <target-column-slug>`
|
|
24
23
|
|
|
25
24
|
## Validation Criteria
|
|
26
25
|
|
|
@@ -11,16 +11,15 @@ Implementer la fonctionnalite ou le correctif selon les specifications. Ecrire d
|
|
|
11
11
|
3. Implementer la fonctionnalite en suivant les standards de code
|
|
12
12
|
4. Ajouter des commentaires pour la logique complexe
|
|
13
13
|
5. Gerer les cas limites et erreurs elegamment
|
|
14
|
-
6. Tester localement avant de
|
|
15
|
-
7.
|
|
16
|
-
8. Si travail hors scope detecte :
|
|
14
|
+
6. Tester localement avant de continuer
|
|
15
|
+
7. Si travail hors scope detecte :
|
|
17
16
|
- Legerement hors scope (amelioration mineure, cas limite) : `autocode new "<titre>" "<description>" -p P2 -l "<labels>" -a "<criteres>" -s patch -c ready`
|
|
18
17
|
- Tres hors scope (nouvelle feature, changement majeur) : `autocode new "<titre>" "<description>" -p P2 -l "<labels>" -a "<criteres>" -s patch`
|
|
19
18
|
- Dans le scope : traiter directement dans le ticket actuel
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
8. Documenter : `autocode comment <ticket-key> "Developpement termine : <fichiers modifies>"`
|
|
20
|
+
9. Avancer : `autocode next <ticket-key>`
|
|
22
21
|
|
|
23
|
-
> Ou retour : `autocode move <key> <
|
|
22
|
+
> Ou retour : `autocode move <ticket-key> <target-column-slug>`
|
|
24
23
|
|
|
25
24
|
## Criteres de Validation
|
|
26
25
|
|
|
@@ -6,9 +6,9 @@ Archive of completed and validated tickets. End of workflow.
|
|
|
6
6
|
|
|
7
7
|
## Actions
|
|
8
8
|
|
|
9
|
-
1. Document: `autocode comment <key> "Ticket completed"`
|
|
9
|
+
1. Document: `autocode comment <ticket-key> "Ticket completed"`
|
|
10
10
|
|
|
11
|
-
> If problem discovered: `autocode move <key> <
|
|
11
|
+
> If problem discovered: `autocode move <ticket-key> <target-column-slug>` or create a new ticket:
|
|
12
12
|
> - Slightly out of scope (minor improvement, edge case): `autocode new "<title>" "<description>" -p P2 -l "<labels>" -a "<criteria>" -s patch -c ready`
|
|
13
13
|
> - Significantly out of scope (new feature, major change): `autocode new "<title>" "<description>" -p P2 -l "<labels>" -a "<criteria>" -s patch`
|
|
14
14
|
|
|
@@ -6,9 +6,9 @@ Archive des tickets termines et valides. Fin du workflow.
|
|
|
6
6
|
|
|
7
7
|
## Actions
|
|
8
8
|
|
|
9
|
-
1. Documenter : `autocode comment <key> "Ticket termine"`
|
|
9
|
+
1. Documenter : `autocode comment <ticket-key> "Ticket termine"`
|
|
10
10
|
|
|
11
|
-
> Si probleme decouvert : `autocode move <key> <
|
|
11
|
+
> Si probleme decouvert : `autocode move <ticket-key> <target-column-slug>` ou creer un nouveau ticket :
|
|
12
12
|
> - Legerement hors scope (amelioration mineure, cas limite) : `autocode new "<titre>" "<description>" -p P2 -l "<labels>" -a "<criteres>" -s patch -c ready`
|
|
13
13
|
> - Tres hors scope (nouvelle feature, changement majeur) : `autocode new "<titre>" "<description>" -p P2 -l "<labels>" -a "<criteres>" -s patch`
|
|
14
14
|
|
|
@@ -17,14 +17,10 @@ Create a clean, atomic git commit for the changes. Follow conventional commit fo
|
|
|
17
17
|
4. Include ticket key in commit body
|
|
18
18
|
5. Create commit: `git commit -m "<type>: <description>"`
|
|
19
19
|
6. Verify commit: `git log -1`
|
|
20
|
-
7.
|
|
21
|
-
|
|
22
|
-
- Significantly out of scope (new feature, major change): `autocode new "<title>" "<description>" -p P2 -l "<labels>" -a "<criteria>" -s patch`
|
|
23
|
-
- In scope: handle directly in current ticket
|
|
24
|
-
8. Document: `autocode comment <key> "Committed: <commit hash>"`
|
|
25
|
-
9. Advance: `autocode next <key>`
|
|
20
|
+
7. Document: `autocode comment <ticket-key> "Committed: <commit hash>"`
|
|
21
|
+
8. Advance: `autocode next <ticket-key>`
|
|
26
22
|
|
|
27
|
-
> Or return: `autocode move <key> <
|
|
23
|
+
> Or return: `autocode move <ticket-key> <target-column-slug>`
|
|
28
24
|
|
|
29
25
|
## Validation Criteria
|
|
30
26
|
|
|
@@ -36,3 +32,5 @@ Create a clean, atomic git commit for the changes. Follow conventional commit fo
|
|
|
36
32
|
## Notes
|
|
37
33
|
|
|
38
34
|
Good commits tell a story. Each commit should be a logical unit of change that could be reverted independently.
|
|
35
|
+
|
|
36
|
+
**IMPORTANT**: Never add any Claude signature or reference in the commit message. No "🤖 Generated with Claude Code", no "Co-Authored-By: Claude...", no AI mention whatsoever.
|
|
@@ -17,14 +17,10 @@ Creer un commit git propre et atomique pour les changements. Suivre le format co
|
|
|
17
17
|
4. Inclure la cle du ticket dans le corps du commit
|
|
18
18
|
5. Creer le commit : `git commit -m "<type>: <description>"`
|
|
19
19
|
6. Verifier le commit : `git log -1`
|
|
20
|
-
7.
|
|
21
|
-
|
|
22
|
-
- Tres hors scope (nouvelle feature, changement majeur) : `autocode new "<titre>" "<description>" -p P2 -l "<labels>" -a "<criteres>" -s patch`
|
|
23
|
-
- Dans le scope : traiter directement dans le ticket actuel
|
|
24
|
-
8. Documenter : `autocode comment <key> "Commite : <hash du commit>"`
|
|
25
|
-
9. Avancer : `autocode next <key>`
|
|
20
|
+
7. Documenter : `autocode comment <ticket-key> "Commite : <hash du commit>"`
|
|
21
|
+
8. Avancer : `autocode next <ticket-key>`
|
|
26
22
|
|
|
27
|
-
> Ou retour : `autocode move <key> <
|
|
23
|
+
> Ou retour : `autocode move <ticket-key> <target-column-slug>`
|
|
28
24
|
|
|
29
25
|
## Criteres de Validation
|
|
30
26
|
|
|
@@ -36,3 +32,5 @@ Creer un commit git propre et atomique pour les changements. Suivre le format co
|
|
|
36
32
|
## Notes
|
|
37
33
|
|
|
38
34
|
De bons commits racontent une histoire. Chaque commit doit etre une unite logique de changement qui pourrait etre revertee independamment.
|
|
35
|
+
|
|
36
|
+
**IMPORTANT** : Ne jamais ajouter de signature ou reference a Claude dans le message de commit. Pas de "🤖 Generated with Claude Code", pas de "Co-Authored-By: Claude...", aucune mention de l'IA.
|
|
@@ -13,14 +13,10 @@ Push committed changes to the remote repository. Ensure CI/CD pipelines pass.
|
|
|
13
13
|
5. Verify push succeeded
|
|
14
14
|
6. Check CI/CD pipeline status
|
|
15
15
|
7. If pipeline fails: fix issues and re-push
|
|
16
|
-
8.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
9. Document: `autocode comment <key> "Pushed to <branch>"`
|
|
21
|
-
10. Advance: `autocode next <key>`
|
|
22
|
-
|
|
23
|
-
> Or return: `autocode move <key> <targetColumn>`
|
|
16
|
+
8. Document: `autocode comment <ticket-key> "Pushed to <branch>"`
|
|
17
|
+
9. Advance: `autocode next <ticket-key>`
|
|
18
|
+
|
|
19
|
+
> Or return: `autocode move <ticket-key> <target-column-slug>`
|
|
24
20
|
|
|
25
21
|
## Validation Criteria
|
|
26
22
|
|
|
@@ -13,14 +13,10 @@ Pousser les changements commites vers le depot distant. S'assurer que les pipeli
|
|
|
13
13
|
5. Verifier que le push a reussi
|
|
14
14
|
6. Verifier le statut du pipeline CI/CD
|
|
15
15
|
7. Si le pipeline echoue : corriger les problemes et re-pousser
|
|
16
|
-
8.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
9. Documenter : `autocode comment <key> "Pousse vers <branche>"`
|
|
21
|
-
10. Avancer : `autocode next <key>`
|
|
22
|
-
|
|
23
|
-
> Ou retour : `autocode move <key> <targetColumn>`
|
|
16
|
+
8. Documenter : `autocode comment <ticket-key> "Pousse vers <branche>"`
|
|
17
|
+
9. Avancer : `autocode next <ticket-key>`
|
|
18
|
+
|
|
19
|
+
> Ou retour : `autocode move <ticket-key> <target-column-slug>`
|
|
24
20
|
|
|
25
21
|
## Criteres de Validation
|
|
26
22
|
|