@k-system/tickr-mcp 1.26.8 → 1.27.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/dist/cli/hooks.d.ts +6 -0
- package/dist/cli/hooks.d.ts.map +1 -0
- package/dist/cli/hooks.js +247 -0
- package/dist/cli/hooks.js.map +1 -0
- package/dist/cli/rules.d.ts +16 -0
- package/dist/cli/rules.d.ts.map +1 -0
- package/dist/cli/rules.js +271 -0
- package/dist/cli/rules.js.map +1 -0
- package/dist/cli/setup.d.ts +5 -0
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +167 -31
- package/dist/cli/setup.js.map +1 -1
- package/dist/index.js +33 -8
- package/dist/server.js +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/cli/hooks.ts"],"names":[],"mappings":"AAAA;;GAEG;AA4MH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GACrC,OAAO,CAAC,IAAI,CAAC,CAqDf;AAID,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAsB7C"}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git hooks a Claude Code hooks pro setup wizard.
|
|
3
|
+
*/
|
|
4
|
+
import { execSync } from "node:child_process";
|
|
5
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync, chmodSync } from "node:fs";
|
|
6
|
+
import { join } from "node:path";
|
|
7
|
+
import { input, confirm } from "@inquirer/prompts";
|
|
8
|
+
const PRE_COMMIT_MARKER_START = "# --- @k-system/tickr-mcp pre-commit START ---";
|
|
9
|
+
const PRE_COMMIT_MARKER_END = "# --- @k-system/tickr-mcp pre-commit END ---";
|
|
10
|
+
function checkJbCli() {
|
|
11
|
+
try {
|
|
12
|
+
const result = execSync("jb --version", {
|
|
13
|
+
encoding: "utf-8",
|
|
14
|
+
timeout: 10000,
|
|
15
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
16
|
+
});
|
|
17
|
+
return { installed: true, version: result.trim() };
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return { installed: false };
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
// --- Pre-commit hook obsah ---
|
|
24
|
+
function preCommitHookContent(dotSettingsPath) {
|
|
25
|
+
// Normalizuj cestu na unix-style pro bash
|
|
26
|
+
const normalizedPath = dotSettingsPath.replace(/\\/g, "/");
|
|
27
|
+
return [
|
|
28
|
+
PRE_COMMIT_MARKER_START,
|
|
29
|
+
'# K-System ReSharper code formatting (generated by @k-system/tickr-mcp setup)',
|
|
30
|
+
"",
|
|
31
|
+
`DOTSETTINGS="${normalizedPath}"`,
|
|
32
|
+
"",
|
|
33
|
+
'# Formátuj staged .cs soubory přes jb cleanupcode',
|
|
34
|
+
'STAGED_CS=$(git diff --cached --name-only --diff-filter=ACM | grep "\\.cs$" || true)',
|
|
35
|
+
"",
|
|
36
|
+
'if [ -n "$STAGED_CS" ] && command -v jb &>/dev/null; then',
|
|
37
|
+
' echo "[pre-commit] Formatting C# files with jb cleanupcode..."',
|
|
38
|
+
' for file in $STAGED_CS; do',
|
|
39
|
+
' if [ -f "$file" ]; then',
|
|
40
|
+
' jb cleanupcode "$file" --profile="Built-in: Reformat Code" --settings="$DOTSETTINGS" --no-builtin-settings 2>/dev/null',
|
|
41
|
+
' git add "$file"',
|
|
42
|
+
' fi',
|
|
43
|
+
' done',
|
|
44
|
+
' echo "[pre-commit] ✓ C# formatting done"',
|
|
45
|
+
"fi",
|
|
46
|
+
"",
|
|
47
|
+
'# Formátuj staged .ts/.tsx soubory přes eslint --fix',
|
|
48
|
+
'STAGED_TS=$(git diff --cached --name-only --diff-filter=ACM | grep -E "\\.(ts|tsx)$" || true)',
|
|
49
|
+
"",
|
|
50
|
+
'if [ -n "$STAGED_TS" ] && command -v npx &>/dev/null; then',
|
|
51
|
+
' echo "[pre-commit] Formatting TypeScript files with ESLint..."',
|
|
52
|
+
' for file in $STAGED_TS; do',
|
|
53
|
+
' if [ -f "$file" ]; then',
|
|
54
|
+
' npx eslint --fix "$file" 2>/dev/null',
|
|
55
|
+
' git add "$file"',
|
|
56
|
+
' fi',
|
|
57
|
+
' done',
|
|
58
|
+
' echo "[pre-commit] ✓ TypeScript formatting done"',
|
|
59
|
+
"fi",
|
|
60
|
+
PRE_COMMIT_MARKER_END,
|
|
61
|
+
"",
|
|
62
|
+
].join("\n");
|
|
63
|
+
}
|
|
64
|
+
// --- Post-commit link hook ---
|
|
65
|
+
function postCommitLinkScript() {
|
|
66
|
+
return [
|
|
67
|
+
"// Post-commit ticket link hook (generated by @k-system/tickr-mcp setup)",
|
|
68
|
+
"// Parsuje git commit z Bash tool output, hledá TKR-* referenci,",
|
|
69
|
+
"// vypíše reminder pro agenta k zavolání link_commit",
|
|
70
|
+
"",
|
|
71
|
+
"let data = '';",
|
|
72
|
+
"process.stdin.on('data', chunk => data += chunk);",
|
|
73
|
+
"process.stdin.on('end', () => {",
|
|
74
|
+
" try {",
|
|
75
|
+
" const input = JSON.parse(data);",
|
|
76
|
+
" const command = input.tool_input?.command || '';",
|
|
77
|
+
"",
|
|
78
|
+
" // Reaguj jen na git commit příkazy",
|
|
79
|
+
" if (!/git\\s+commit/.test(command)) return;",
|
|
80
|
+
"",
|
|
81
|
+
" // Extrahuj ticket referenci z commit message",
|
|
82
|
+
" const ticketMatch = command.match(/\\(?(TKR-[A-Z]*-?\\d+)\\)?/i);",
|
|
83
|
+
"",
|
|
84
|
+
" if (ticketMatch) {",
|
|
85
|
+
" const ticketRef = ticketMatch[1].toUpperCase();",
|
|
86
|
+
" const outputText = input.tool_output?.stdout || input.tool_output || '';",
|
|
87
|
+
" const shaMatch = outputText.match(/\\[[\\w/.-]+\\s+([a-f0-9]{7,})\\]/);",
|
|
88
|
+
" const sha = shaMatch ? shaMatch[1] : null;",
|
|
89
|
+
"",
|
|
90
|
+
" if (sha) {",
|
|
91
|
+
" console.error(`[hook] Commit ${sha} references ${ticketRef} — call link_commit to connect them`);",
|
|
92
|
+
" }",
|
|
93
|
+
" } else {",
|
|
94
|
+
" console.error('[hook] No ticket reference (TKR-*) found in commit message');",
|
|
95
|
+
" }",
|
|
96
|
+
" } catch {",
|
|
97
|
+
" // Tiché selhání — neblokuj commit",
|
|
98
|
+
" }",
|
|
99
|
+
"});",
|
|
100
|
+
"",
|
|
101
|
+
].join("\n");
|
|
102
|
+
}
|
|
103
|
+
// --- Zápis pre-commit hooku ---
|
|
104
|
+
function installPreCommitHook(cwd, dotSettingsPath) {
|
|
105
|
+
const hooksDir = join(cwd, ".git", "hooks");
|
|
106
|
+
const hookPath = join(hooksDir, "pre-commit");
|
|
107
|
+
const hookContent = preCommitHookContent(dotSettingsPath);
|
|
108
|
+
mkdirSync(hooksDir, { recursive: true });
|
|
109
|
+
if (existsSync(hookPath)) {
|
|
110
|
+
let existing = readFileSync(hookPath, "utf-8");
|
|
111
|
+
const startIdx = existing.indexOf(PRE_COMMIT_MARKER_START);
|
|
112
|
+
const endIdx = existing.indexOf(PRE_COMMIT_MARKER_END);
|
|
113
|
+
if (startIdx !== -1 && endIdx !== -1) {
|
|
114
|
+
// Přepiš blok mezi markery
|
|
115
|
+
existing =
|
|
116
|
+
existing.substring(0, startIdx) +
|
|
117
|
+
hookContent +
|
|
118
|
+
existing.substring(endIdx + PRE_COMMIT_MARKER_END.length + 1);
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
// Přidej na konec
|
|
122
|
+
existing = existing.trimEnd() + "\n\n" + hookContent;
|
|
123
|
+
}
|
|
124
|
+
writeFileSync(hookPath, existing, "utf-8");
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
writeFileSync(hookPath, "#!/bin/bash\n\n" + hookContent, "utf-8");
|
|
128
|
+
}
|
|
129
|
+
try {
|
|
130
|
+
chmodSync(hookPath, 0o755);
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
// Windows — chmod nemusí fungovat
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// --- Zápis Claude Code hooku ---
|
|
137
|
+
function installPostCommitLinkHook(cwd) {
|
|
138
|
+
const hooksDir = join(cwd, ".claude", "hooks");
|
|
139
|
+
mkdirSync(hooksDir, { recursive: true });
|
|
140
|
+
const scriptPath = join(hooksDir, "post-commit-link.js");
|
|
141
|
+
writeFileSync(scriptPath, postCommitLinkScript(), "utf-8");
|
|
142
|
+
// Aktualizuj settings.local.json
|
|
143
|
+
const settingsPath = join(cwd, ".claude", "settings.local.json");
|
|
144
|
+
let settings = {};
|
|
145
|
+
try {
|
|
146
|
+
settings = JSON.parse(readFileSync(settingsPath, "utf-8"));
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
// Neexistuje nebo nelze parsovat
|
|
150
|
+
}
|
|
151
|
+
// Přidej hook konfiguraci
|
|
152
|
+
const hooks = (settings.hooks || {});
|
|
153
|
+
const postToolUse = (hooks.PostToolUse || []);
|
|
154
|
+
// Odstraň existující tickr hook (pokud existuje)
|
|
155
|
+
const filtered = postToolUse.filter((h) => {
|
|
156
|
+
const hooksArr = h.hooks;
|
|
157
|
+
return !hooksArr?.some((hh) => typeof hh.command === "string" && hh.command.includes("post-commit-link"));
|
|
158
|
+
});
|
|
159
|
+
filtered.push({
|
|
160
|
+
matcher: "Bash",
|
|
161
|
+
hooks: [
|
|
162
|
+
{
|
|
163
|
+
type: "command",
|
|
164
|
+
command: "node .claude/hooks/post-commit-link.js",
|
|
165
|
+
async: true,
|
|
166
|
+
timeout: 15,
|
|
167
|
+
},
|
|
168
|
+
],
|
|
169
|
+
});
|
|
170
|
+
hooks.PostToolUse = filtered;
|
|
171
|
+
settings.hooks = hooks;
|
|
172
|
+
writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + "\n", "utf-8");
|
|
173
|
+
}
|
|
174
|
+
// --- Hlavní setup funkce pro hooks ---
|
|
175
|
+
export async function setupHooks(cwd, args) {
|
|
176
|
+
console.log("");
|
|
177
|
+
console.log(" --- Hooks ---");
|
|
178
|
+
// A. Git pre-commit hook
|
|
179
|
+
const skipPreCommit = args["no-hooks"] === true;
|
|
180
|
+
if (!skipPreCommit) {
|
|
181
|
+
const installPreCommit = args["hooks-only"] === true || await confirm({
|
|
182
|
+
message: " Nainstalovat git pre-commit hook pro formátování?",
|
|
183
|
+
default: true,
|
|
184
|
+
});
|
|
185
|
+
if (installPreCommit) {
|
|
186
|
+
// Detekce jb CLI
|
|
187
|
+
const jb = checkJbCli();
|
|
188
|
+
if (jb.installed) {
|
|
189
|
+
console.log(` ✓ jb ${jb.version} nalezen`);
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
console.log(" [WARN] JetBrains CLI (jb) není nainstalované.");
|
|
193
|
+
console.log(" Instalace: dotnet tool install -g JetBrains.ReSharper.GlobalTools");
|
|
194
|
+
console.log(" Hook bude nainstalován, ale C# formátování bude přeskočeno dokud jb nenainstalujete.");
|
|
195
|
+
}
|
|
196
|
+
// DotSettings cesta
|
|
197
|
+
const defaultDotSettings = "x:\\Dev\\Repo\\KSystem.Resharper.CodeStyle\\KSystem.Resharper.CodeStyle.DotSettings";
|
|
198
|
+
const dotSettingsPath = typeof args["dotsettings"] === "string"
|
|
199
|
+
? args["dotsettings"]
|
|
200
|
+
: await input({
|
|
201
|
+
message: " Cesta k ReSharper DotSettings:",
|
|
202
|
+
default: existsSync(defaultDotSettings) ? defaultDotSettings : undefined,
|
|
203
|
+
});
|
|
204
|
+
if (dotSettingsPath && existsSync(dotSettingsPath)) {
|
|
205
|
+
installPreCommitHook(cwd, dotSettingsPath);
|
|
206
|
+
console.log(" ✓ .git/hooks/pre-commit nainstalován");
|
|
207
|
+
}
|
|
208
|
+
else if (dotSettingsPath) {
|
|
209
|
+
console.log(" [WARN] Soubor neexistuje — pre-commit hook přeskočen.");
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
// B. Claude Code post-commit link hook
|
|
214
|
+
const installLink = args["hooks-only"] === true || await confirm({
|
|
215
|
+
message: " Nainstalovat Claude Code post-commit ticket link hook?",
|
|
216
|
+
default: true,
|
|
217
|
+
});
|
|
218
|
+
if (installLink) {
|
|
219
|
+
installPostCommitLinkHook(cwd);
|
|
220
|
+
console.log(" ✓ .claude/hooks/post-commit-link.js vytvořen");
|
|
221
|
+
console.log(" ✓ .claude/settings.local.json aktualizován");
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
// --- Update-only: přegenerovat hook skripty ---
|
|
225
|
+
export function updateHooks(cwd) {
|
|
226
|
+
// Pre-commit hook — přegenerovat jen pokud existuje (zachovat DotSettings cestu)
|
|
227
|
+
const hookPath = join(cwd, ".git", "hooks", "pre-commit");
|
|
228
|
+
if (existsSync(hookPath)) {
|
|
229
|
+
const content = readFileSync(hookPath, "utf-8");
|
|
230
|
+
const startIdx = content.indexOf(PRE_COMMIT_MARKER_START);
|
|
231
|
+
if (startIdx !== -1) {
|
|
232
|
+
// Extrahuj DotSettings cestu z existujícího hooku
|
|
233
|
+
const dotSettingsMatch = content.match(/DOTSETTINGS="([^"]+)"/);
|
|
234
|
+
if (dotSettingsMatch) {
|
|
235
|
+
installPreCommitHook(cwd, dotSettingsMatch[1]);
|
|
236
|
+
console.log(" .git/hooks/pre-commit (updated)");
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
// Post-commit link hook — přegenerovat vždy pokud existuje
|
|
241
|
+
const linkScript = join(cwd, ".claude", "hooks", "post-commit-link.js");
|
|
242
|
+
if (existsSync(linkScript)) {
|
|
243
|
+
writeFileSync(linkScript, postCommitLinkScript(), "utf-8");
|
|
244
|
+
console.log(" .claude/hooks/post-commit-link.js (updated)");
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/cli/hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rule template funkce pro setup wizard.
|
|
3
|
+
* Generují obsah .claude/rules/ souborů.
|
|
4
|
+
*/
|
|
5
|
+
export declare function ruleCommonCodingStyle(): string;
|
|
6
|
+
export declare function ruleCommonGitWorkflow(): string;
|
|
7
|
+
export declare function ruleCommonSecurity(): string;
|
|
8
|
+
export declare function ruleCsharpFormatting(): string;
|
|
9
|
+
export declare function ruleCsharpAspnetcore(): string;
|
|
10
|
+
export declare function ruleTypescriptReact(): string;
|
|
11
|
+
export declare function ruleTypescriptApiClient(): string;
|
|
12
|
+
export declare const RULE_FILES: Array<{
|
|
13
|
+
name: string;
|
|
14
|
+
template: () => string;
|
|
15
|
+
}>;
|
|
16
|
+
//# sourceMappingURL=rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/cli/rules.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,wBAAgB,qBAAqB,IAAI,MAAM,CA8B9C;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CA0B9C;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CA0B3C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAuC7C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAuC7C;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAuD5C;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAmChD;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,MAAM,CAAA;CAAE,CAQtE,CAAC"}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rule template funkce pro setup wizard.
|
|
3
|
+
* Generují obsah .claude/rules/ souborů.
|
|
4
|
+
*/
|
|
5
|
+
export function ruleCommonCodingStyle() {
|
|
6
|
+
return [
|
|
7
|
+
"# Coding Style",
|
|
8
|
+
"",
|
|
9
|
+
"## Jazyk",
|
|
10
|
+
"- Commit messages: anglicky, conventional commits",
|
|
11
|
+
"- Komentáře v kódu (// a /* */): česky",
|
|
12
|
+
"- JSX komentáře: anglicky",
|
|
13
|
+
"- UI texty: česky (pokud není projekt anglický)",
|
|
14
|
+
"",
|
|
15
|
+
"## Obecné principy",
|
|
16
|
+
"- Preferuj immutabilitu — const místo let, readonly kde to jde",
|
|
17
|
+
"- Funkce max 50 řádků, soubory max 800 řádků",
|
|
18
|
+
"- Max 4 úrovně zanořování",
|
|
19
|
+
"- Žádné console.log v produkčním kódu",
|
|
20
|
+
"- DRY ale ne předčasná abstrakce — 3 opakování = refactor",
|
|
21
|
+
"- Preferuj explicitní pojmenování před zkratkami",
|
|
22
|
+
"",
|
|
23
|
+
"## Error handling",
|
|
24
|
+
"- Vždy ošetři chybové stavy — žádné prázdné catch bloky",
|
|
25
|
+
"- Loguj chyby s kontextem (co se dělo, jaké parametry)",
|
|
26
|
+
"- Chybové hlášky pro uživatele musí být srozumitelné",
|
|
27
|
+
"- Interní chyby loguj, nezobrazuj uživateli stack trace",
|
|
28
|
+
"",
|
|
29
|
+
"## Soubory a organizace",
|
|
30
|
+
"- Jeden koncept per soubor (jedna komponenta, jeden service)",
|
|
31
|
+
"- Pojmenování souborů odpovídá obsahu (UserService.cs, LoginPage.tsx)",
|
|
32
|
+
"- Importy seřazené: framework → third-party → local",
|
|
33
|
+
"",
|
|
34
|
+
].join("\n");
|
|
35
|
+
}
|
|
36
|
+
export function ruleCommonGitWorkflow() {
|
|
37
|
+
return [
|
|
38
|
+
"# Git Workflow",
|
|
39
|
+
"",
|
|
40
|
+
"## Branches",
|
|
41
|
+
"- **main** — produkce, pouze release merges",
|
|
42
|
+
"- **develop** — vývojová větev",
|
|
43
|
+
"- **feature/*** — nové funkce (z develop)",
|
|
44
|
+
"- **fix/*** — bug fixy (z develop)",
|
|
45
|
+
"- **release/*** — příprava release (z develop → main + develop)",
|
|
46
|
+
"- **hotfix/*** — urgentní opravy (z main → main + develop)",
|
|
47
|
+
"",
|
|
48
|
+
"## Commits",
|
|
49
|
+
"- Formát: conventional commits — `feat:`, `fix:`, `docs:`, `refactor:`, `test:`, `chore:`, `perf:`",
|
|
50
|
+
"- Jazyk: anglicky",
|
|
51
|
+
"- Max 72 znaků v subject line",
|
|
52
|
+
"- Body volitelný — vysvětli PROČ, ne CO (to je vidět z diffu)",
|
|
53
|
+
"- Reference ticket: `(TKR-ADR-0058)` na konci subject line",
|
|
54
|
+
"",
|
|
55
|
+
"## Pravidla",
|
|
56
|
+
"- Nikdy pushovat přímo do main",
|
|
57
|
+
"- Nikdy force push na sdílené větve",
|
|
58
|
+
"- Před commitem: zkontroluj co commitneš (git diff --staged)",
|
|
59
|
+
"- Necommituj .env, credentials, secrets, node_modules, dist/",
|
|
60
|
+
"",
|
|
61
|
+
].join("\n");
|
|
62
|
+
}
|
|
63
|
+
export function ruleCommonSecurity() {
|
|
64
|
+
return [
|
|
65
|
+
"# Security Rules",
|
|
66
|
+
"",
|
|
67
|
+
"## Secrets",
|
|
68
|
+
"- NIKDY hardcoded secrets v kódu — použij environment variables nebo config",
|
|
69
|
+
"- Nekontroluj .env, appsettings.*.json s citlivými daty do gitu",
|
|
70
|
+
"- API klíče, connection stringy, tokeny — vždy z env/config",
|
|
71
|
+
"",
|
|
72
|
+
"## Input validation",
|
|
73
|
+
"- Validuj VŠECHNY vstupy na systémové hranici (API endpointy, formuláře)",
|
|
74
|
+
"- Parametrizované SQL queries — nikdy string concatenation",
|
|
75
|
+
"- Escapuj HTML output — prevence XSS",
|
|
76
|
+
"- Validuj file paths — prevence path traversal",
|
|
77
|
+
"",
|
|
78
|
+
"## Auth",
|
|
79
|
+
"- Kontroluj autorizaci na KAŽDÉM endpointu — ne jen autentizaci",
|
|
80
|
+
"- Neloguj citlivá data (hesla, tokeny, PII)",
|
|
81
|
+
"- Session tokeny: httpOnly, secure, SameSite",
|
|
82
|
+
"- CORS: explicitní allow list, ne wildcard v produkci",
|
|
83
|
+
"",
|
|
84
|
+
"## Dependencies",
|
|
85
|
+
"- Neinstaluj balíčky bez kontroly (popularity, maintenance, license)",
|
|
86
|
+
"- Pravidelně aktualizuj dependencies kvůli security patches",
|
|
87
|
+
"",
|
|
88
|
+
].join("\n");
|
|
89
|
+
}
|
|
90
|
+
export function ruleCsharpFormatting() {
|
|
91
|
+
return [
|
|
92
|
+
"# C# Formatting (based on K-System ReSharper CodeStyle)",
|
|
93
|
+
"",
|
|
94
|
+
"## Braces",
|
|
95
|
+
"- Braces POVINNÉ pro foreach, if/else — žádné braceless one-liners",
|
|
96
|
+
"- Allman style (brace na novém řádku)",
|
|
97
|
+
"",
|
|
98
|
+
"## Blank lines",
|
|
99
|
+
"- 1 blank line PŘED block statements (if, for, foreach, while, using)",
|
|
100
|
+
"- Max 1 blank line v deklaracích (mezi properties/fields)",
|
|
101
|
+
"- 1 blank line mezi metodami",
|
|
102
|
+
"",
|
|
103
|
+
"## Line length",
|
|
104
|
+
"- Wrap limit: 125 znaků",
|
|
105
|
+
"- Pokud výraz přesáhne, zalomit na logickém místě",
|
|
106
|
+
"",
|
|
107
|
+
"## Attributes",
|
|
108
|
+
"- Atributy VŽDY na vlastním řádku (ne na stejném řádku jako field/accessor)",
|
|
109
|
+
"",
|
|
110
|
+
"## Usings",
|
|
111
|
+
"- Usings do deepest scope (ne na top-level)",
|
|
112
|
+
"- Seřazení: System → Microsoft → Third-party → Local",
|
|
113
|
+
"",
|
|
114
|
+
"## Naming",
|
|
115
|
+
"- PascalCase: třídy, metody, properties, public fields, enums",
|
|
116
|
+
"- camelCase: lokální proměnné, parametry, private static fields",
|
|
117
|
+
"- _camelCase: NEPOUŽÍVAT (private static fields bez prefixu)",
|
|
118
|
+
"- UPPER_CASE: konstanty",
|
|
119
|
+
"- Interface prefix: I (IUserService)",
|
|
120
|
+
"- Async suffix: Async (GetUsersAsync)",
|
|
121
|
+
"",
|
|
122
|
+
"## Další",
|
|
123
|
+
"- var preferovat pokud je typ zřejmý z pravé strany",
|
|
124
|
+
"- Expression body (=>) pro jednoduché jednolinky",
|
|
125
|
+
"- Nullable reference types: zapnuté, ošetřovat všude",
|
|
126
|
+
"- record typy pro immutable DTO",
|
|
127
|
+
"",
|
|
128
|
+
].join("\n");
|
|
129
|
+
}
|
|
130
|
+
export function ruleCsharpAspnetcore() {
|
|
131
|
+
return [
|
|
132
|
+
"# ASP.NET Core Patterns",
|
|
133
|
+
"",
|
|
134
|
+
"## Architektura",
|
|
135
|
+
"- Třívrstvá: Api (controllers/endpoints) → Core (domain/interfaces) → Infrastructure (EF, services)",
|
|
136
|
+
"- Dependency injection: registrace v Program.cs nebo extension methods",
|
|
137
|
+
"- Nikdy new pro services — vždy DI",
|
|
138
|
+
"",
|
|
139
|
+
"## EF Core",
|
|
140
|
+
"- Database-First přístup — schéma v .sqlproj, EF Core bez migrací",
|
|
141
|
+
"- Vždy použij async metody (ToListAsync, FirstOrDefaultAsync)",
|
|
142
|
+
"- Nezapomeň na .AsNoTracking() pro read-only queries",
|
|
143
|
+
"- Pozor na N+1 queries — použij Include/ThenInclude nebo projection",
|
|
144
|
+
"- Global query filters pro multi-tenant (TenantId)",
|
|
145
|
+
"- NIKDY nepoužívej raw SQL pokud to jde přes LINQ",
|
|
146
|
+
"",
|
|
147
|
+
"## API endpointy",
|
|
148
|
+
"- RESTful konvence: GET (read), POST (create), PUT (full update), PATCH (partial), DELETE",
|
|
149
|
+
"- Vracet ActionResult<T> s odpovídajícím HTTP status kódem",
|
|
150
|
+
"- Validace přes [Required], [MaxLength] atributy + FluentValidation pro složitější",
|
|
151
|
+
"- Pagination: vždy implementovat pro list endpointy (skip/take nebo cursor)",
|
|
152
|
+
"",
|
|
153
|
+
"## Error handling",
|
|
154
|
+
"- Globální exception handler middleware",
|
|
155
|
+
"- ProblemDetails formát pro API chyby",
|
|
156
|
+
"- Neloguj celé exception objekty do response — jen message pro klienta",
|
|
157
|
+
"- Strukturované logování (ILogger s parametry, ne string interpolation)",
|
|
158
|
+
"",
|
|
159
|
+
"## Auth",
|
|
160
|
+
"- JWT Bearer autentizace",
|
|
161
|
+
"- Autorizační politiky (policies) místo role checks v controllerech",
|
|
162
|
+
"- Vždy kontroluj TenantId — multi-tenant izolace",
|
|
163
|
+
"",
|
|
164
|
+
"## Middleware pipeline",
|
|
165
|
+
"- Pořadí: Exception handling → CORS → Auth → Routing → Endpoints",
|
|
166
|
+
"- Custom middleware: krátké, single-responsibility",
|
|
167
|
+
"",
|
|
168
|
+
].join("\n");
|
|
169
|
+
}
|
|
170
|
+
export function ruleTypescriptReact() {
|
|
171
|
+
return [
|
|
172
|
+
"# TypeScript / React Patterns",
|
|
173
|
+
"",
|
|
174
|
+
"## TypeScript",
|
|
175
|
+
"- Strict mode zapnutý",
|
|
176
|
+
"- Explicitní typy pro function parameters a return types",
|
|
177
|
+
"- Interface pro objekty, type pro unions a utility types",
|
|
178
|
+
"- Vyhýbej se any — použij unknown pokud typ neznáš",
|
|
179
|
+
"- Enums: preferuj const objects nebo union types",
|
|
180
|
+
"",
|
|
181
|
+
"## React komponenty",
|
|
182
|
+
"- Funkcionální komponenty (žádné class components)",
|
|
183
|
+
"- Props: interface pojmenovaná {ComponentName}Props",
|
|
184
|
+
"- Destrukturuj props v parametru",
|
|
185
|
+
"- Jeden komponent per soubor",
|
|
186
|
+
"",
|
|
187
|
+
"## Hooks",
|
|
188
|
+
"- Dependency arrays: KOMPLETNÍ — žádné chybějící závislosti",
|
|
189
|
+
"- useEffect: cleanup funkce pro subscriptions a timery",
|
|
190
|
+
"- useMemo/useCallback: používej jen když je reálný performance problém",
|
|
191
|
+
"- Custom hooks: prefix use, extrahuj logiku z komponent",
|
|
192
|
+
"",
|
|
193
|
+
"## State management",
|
|
194
|
+
"- Lokální stav: useState pro jednoduché, useReducer pro složitější",
|
|
195
|
+
"- Globální stav: Zustand stores (ne Context pro frequently changing data)",
|
|
196
|
+
"- Server state: React Query (useQuery, useMutation)",
|
|
197
|
+
"- Nikdy mutuj stav přímo — vždy nová reference",
|
|
198
|
+
"",
|
|
199
|
+
"## Styling (Tickr konvence)",
|
|
200
|
+
"- Inline styles s design tokens (tokens.colors.*, tokens.spacing.*, tokens.fontSize.*)",
|
|
201
|
+
"- Žádný externí UI framework (Material UI, Tailwind, etc.)",
|
|
202
|
+
"- Dark theme: VŽDY používej tokeny, nikdy hardcoded barvy",
|
|
203
|
+
"- Responzivní: media queries nebo container queries kde potřeba",
|
|
204
|
+
"",
|
|
205
|
+
"## React Query patterns",
|
|
206
|
+
"- Query keys: ['entity', id] nebo ['entity', 'list', filters]",
|
|
207
|
+
"- Mutations: invalidate related queries onSuccess",
|
|
208
|
+
"- Loading states: vždy zobrazit skeleton nebo spinner",
|
|
209
|
+
"- Error states: vždy zobrazit chybovou hlášku (ne tiché selhání)",
|
|
210
|
+
"- Stale time: nastavit podle use case (real-time data = 0, statické = 5min+)",
|
|
211
|
+
"",
|
|
212
|
+
"## Formuláře",
|
|
213
|
+
"- Controlled components (value + onChange)",
|
|
214
|
+
"- Validace: na submit, ne na každý keystroke",
|
|
215
|
+
"- Disabled submit button při pending stavu",
|
|
216
|
+
"- Error messages u příslušného pole",
|
|
217
|
+
"",
|
|
218
|
+
"## Performance",
|
|
219
|
+
"- Lazy loading pro stránky (React.lazy + Suspense)",
|
|
220
|
+
"- Virtualizace pro dlouhé seznamy",
|
|
221
|
+
"- Debounce pro search inputy",
|
|
222
|
+
"- Keys v seznamech: stabilní ID, nikdy index",
|
|
223
|
+
"",
|
|
224
|
+
].join("\n");
|
|
225
|
+
}
|
|
226
|
+
export function ruleTypescriptApiClient() {
|
|
227
|
+
return [
|
|
228
|
+
"# API Client Patterns",
|
|
229
|
+
"",
|
|
230
|
+
"## Fetch wrapper",
|
|
231
|
+
"- Centrální api objekt (api.get, api.post, api.put, api.delete)",
|
|
232
|
+
"- Automatický JWT token v Authorization header",
|
|
233
|
+
"- Auto-refresh tokenu při 401",
|
|
234
|
+
"- Base URL z konfigurace (ne hardcoded)",
|
|
235
|
+
"",
|
|
236
|
+
"## Request patterns",
|
|
237
|
+
"- GET: nikdy body, parametry v query string",
|
|
238
|
+
"- POST/PUT: JSON body, Content-Type: application/json",
|
|
239
|
+
"- DELETE: ID v URL, žádné body",
|
|
240
|
+
"- File upload: FormData, ne JSON",
|
|
241
|
+
"",
|
|
242
|
+
"## Response handling",
|
|
243
|
+
"- Vždy kontroluj response.ok / status code",
|
|
244
|
+
"- Typuj response data (generický ApiResponse<T>)",
|
|
245
|
+
"- Error response: parsuj do uživatelsky čitelné hlášky",
|
|
246
|
+
"- Network errors: odchyť a zobraz \"Server nedostupný\"",
|
|
247
|
+
"",
|
|
248
|
+
"## React Query integrace",
|
|
249
|
+
"- useQuery pro GET requesty (automatický caching, refetch)",
|
|
250
|
+
"- useMutation pro POST/PUT/DELETE (s onSuccess invalidace)",
|
|
251
|
+
"- Query key konvence: ['projects', slug, 'tickets', number]",
|
|
252
|
+
"- Optimistic updates pro rychlý UX (s rollback na error)",
|
|
253
|
+
"",
|
|
254
|
+
"## Konvence",
|
|
255
|
+
"- API client soubory v src/api/",
|
|
256
|
+
"- Jeden soubor per API doména (tickets.ts, projects.ts, auth.ts)",
|
|
257
|
+
"- Exportuj typed funkce, ne raw fetch volání",
|
|
258
|
+
"- Nullish coalescing pro optional fields z API",
|
|
259
|
+
"",
|
|
260
|
+
].join("\n");
|
|
261
|
+
}
|
|
262
|
+
export const RULE_FILES = [
|
|
263
|
+
{ name: "common-coding-style.md", template: ruleCommonCodingStyle },
|
|
264
|
+
{ name: "common-git-workflow.md", template: ruleCommonGitWorkflow },
|
|
265
|
+
{ name: "common-security.md", template: ruleCommonSecurity },
|
|
266
|
+
{ name: "csharp-formatting.md", template: ruleCsharpFormatting },
|
|
267
|
+
{ name: "csharp-aspnetcore.md", template: ruleCsharpAspnetcore },
|
|
268
|
+
{ name: "typescript-react.md", template: ruleTypescriptReact },
|
|
269
|
+
{ name: "typescript-api-client.md", template: ruleTypescriptApiClient },
|
|
270
|
+
];
|
|
271
|
+
//# sourceMappingURL=rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/cli/rules.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,gBAAgB;QAChB,EAAE;QACF,UAAU;QACV,mDAAmD;QACnD,wCAAwC;QACxC,2BAA2B;QAC3B,iDAAiD;QACjD,EAAE;QACF,oBAAoB;QACpB,gEAAgE;QAChE,8CAA8C;QAC9C,2BAA2B;QAC3B,uCAAuC;QACvC,2DAA2D;QAC3D,kDAAkD;QAClD,EAAE;QACF,mBAAmB;QACnB,yDAAyD;QACzD,wDAAwD;QACxD,sDAAsD;QACtD,yDAAyD;QACzD,EAAE;QACF,yBAAyB;QACzB,8DAA8D;QAC9D,uEAAuE;QACvE,qDAAqD;QACrD,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,gBAAgB;QAChB,EAAE;QACF,aAAa;QACb,6CAA6C;QAC7C,gCAAgC;QAChC,2CAA2C;QAC3C,oCAAoC;QACpC,iEAAiE;QACjE,4DAA4D;QAC5D,EAAE;QACF,YAAY;QACZ,oGAAoG;QACpG,mBAAmB;QACnB,+BAA+B;QAC/B,+DAA+D;QAC/D,4DAA4D;QAC5D,EAAE;QACF,aAAa;QACb,gCAAgC;QAChC,qCAAqC;QACrC,8DAA8D;QAC9D,8DAA8D;QAC9D,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,kBAAkB;QAClB,EAAE;QACF,YAAY;QACZ,6EAA6E;QAC7E,iEAAiE;QACjE,6DAA6D;QAC7D,EAAE;QACF,qBAAqB;QACrB,0EAA0E;QAC1E,4DAA4D;QAC5D,sCAAsC;QACtC,gDAAgD;QAChD,EAAE;QACF,SAAS;QACT,iEAAiE;QACjE,6CAA6C;QAC7C,8CAA8C;QAC9C,uDAAuD;QACvD,EAAE;QACF,iBAAiB;QACjB,sEAAsE;QACtE,6DAA6D;QAC7D,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,yDAAyD;QACzD,EAAE;QACF,WAAW;QACX,oEAAoE;QACpE,uCAAuC;QACvC,EAAE;QACF,gBAAgB;QAChB,uEAAuE;QACvE,2DAA2D;QAC3D,8BAA8B;QAC9B,EAAE;QACF,gBAAgB;QAChB,yBAAyB;QACzB,mDAAmD;QACnD,EAAE;QACF,eAAe;QACf,6EAA6E;QAC7E,EAAE;QACF,WAAW;QACX,6CAA6C;QAC7C,sDAAsD;QACtD,EAAE;QACF,WAAW;QACX,+DAA+D;QAC/D,iEAAiE;QACjE,8DAA8D;QAC9D,yBAAyB;QACzB,sCAAsC;QACtC,uCAAuC;QACvC,EAAE;QACF,UAAU;QACV,qDAAqD;QACrD,kDAAkD;QAClD,sDAAsD;QACtD,iCAAiC;QACjC,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,yBAAyB;QACzB,EAAE;QACF,iBAAiB;QACjB,qGAAqG;QACrG,wEAAwE;QACxE,oCAAoC;QACpC,EAAE;QACF,YAAY;QACZ,mEAAmE;QACnE,+DAA+D;QAC/D,sDAAsD;QACtD,qEAAqE;QACrE,oDAAoD;QACpD,mDAAmD;QACnD,EAAE;QACF,kBAAkB;QAClB,2FAA2F;QAC3F,4DAA4D;QAC5D,oFAAoF;QACpF,6EAA6E;QAC7E,EAAE;QACF,mBAAmB;QACnB,yCAAyC;QACzC,uCAAuC;QACvC,wEAAwE;QACxE,yEAAyE;QACzE,EAAE;QACF,SAAS;QACT,0BAA0B;QAC1B,qEAAqE;QACrE,kDAAkD;QAClD,EAAE;QACF,wBAAwB;QACxB,kEAAkE;QAClE,oDAAoD;QACpD,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,+BAA+B;QAC/B,EAAE;QACF,eAAe;QACf,uBAAuB;QACvB,0DAA0D;QAC1D,0DAA0D;QAC1D,oDAAoD;QACpD,kDAAkD;QAClD,EAAE;QACF,qBAAqB;QACrB,oDAAoD;QACpD,qDAAqD;QACrD,kCAAkC;QAClC,8BAA8B;QAC9B,EAAE;QACF,UAAU;QACV,6DAA6D;QAC7D,wDAAwD;QACxD,wEAAwE;QACxE,yDAAyD;QACzD,EAAE;QACF,qBAAqB;QACrB,oEAAoE;QACpE,2EAA2E;QAC3E,qDAAqD;QACrD,gDAAgD;QAChD,EAAE;QACF,6BAA6B;QAC7B,wFAAwF;QACxF,4DAA4D;QAC5D,2DAA2D;QAC3D,iEAAiE;QACjE,EAAE;QACF,yBAAyB;QACzB,+DAA+D;QAC/D,mDAAmD;QACnD,uDAAuD;QACvD,kEAAkE;QAClE,8EAA8E;QAC9E,EAAE;QACF,cAAc;QACd,4CAA4C;QAC5C,8CAA8C;QAC9C,4CAA4C;QAC5C,qCAAqC;QACrC,EAAE;QACF,gBAAgB;QAChB,oDAAoD;QACpD,mCAAmC;QACnC,8BAA8B;QAC9B,8CAA8C;QAC9C,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,uBAAuB;QACvB,EAAE;QACF,kBAAkB;QAClB,iEAAiE;QACjE,gDAAgD;QAChD,+BAA+B;QAC/B,yCAAyC;QACzC,EAAE;QACF,qBAAqB;QACrB,6CAA6C;QAC7C,uDAAuD;QACvD,gCAAgC;QAChC,kCAAkC;QAClC,EAAE;QACF,sBAAsB;QACtB,4CAA4C;QAC5C,kDAAkD;QAClD,wDAAwD;QACxD,yDAAyD;QACzD,EAAE;QACF,0BAA0B;QAC1B,4DAA4D;QAC5D,4DAA4D;QAC5D,6DAA6D;QAC7D,0DAA0D;QAC1D,EAAE;QACF,aAAa;QACb,iCAAiC;QACjC,kEAAkE;QAClE,8CAA8C;QAC9C,gDAAgD;QAChD,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAoD;IACzE,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,qBAAqB,EAAE;IACnE,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,qBAAqB,EAAE;IACnE,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,kBAAkB,EAAE;IAC5D,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,oBAAoB,EAAE;IAChE,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,oBAAoB,EAAE;IAChE,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,mBAAmB,EAAE;IAC9D,EAAE,IAAI,EAAE,0BAA0B,EAAE,QAAQ,EAAE,uBAAuB,EAAE;CACxE,CAAC"}
|
package/dist/cli/setup.d.ts
CHANGED
|
@@ -4,5 +4,10 @@
|
|
|
4
4
|
* Interaktivní průvodce pro nastavení Tickr agentů v libovolném projektu.
|
|
5
5
|
* Spuštění: npx @k-system/tickr-mcp setup
|
|
6
6
|
*/
|
|
7
|
+
/** Full setup wizard — API URL, projekt, agenti, rules, hooks */
|
|
8
|
+
export declare function init(): Promise<void>;
|
|
9
|
+
/** Update existujících souborů — templates, rules, hooks, skills */
|
|
10
|
+
export declare function update(): Promise<void>;
|
|
11
|
+
/** Zpětná kompatibilita — router pro starý "setup" command */
|
|
7
12
|
export default function setup(): Promise<void>;
|
|
8
13
|
//# sourceMappingURL=setup.d.ts.map
|
package/dist/cli/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":";AACA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":";AACA;;;;GAIG;AA6lCH,iEAAiE;AACjE,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAoL1C;AAED,oEAAoE;AACpE,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAE5C;AAED,8DAA8D;AAC9D,wBAA8B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAwBnD"}
|
package/dist/cli/setup.js
CHANGED
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
import { input, checkbox } from "@inquirer/prompts";
|
|
8
8
|
import { writeFileSync, mkdirSync, readFileSync, existsSync } from "node:fs";
|
|
9
9
|
import { join } from "node:path";
|
|
10
|
+
import { RULE_FILES } from "./rules.js";
|
|
11
|
+
import { setupHooks, updateHooks } from "./hooks.js";
|
|
10
12
|
// --- CLI argumenty ---
|
|
11
13
|
function parseArgs() {
|
|
12
14
|
const args = {};
|
|
@@ -148,6 +150,7 @@ Máš k dispozici MCP server \`@k-system/tickr-mcp\` — používej ho jako prim
|
|
|
148
150
|
- **Kontroluj existující kód** — před návrhem si přečti relevantní soubory, abys věděl co už existuje
|
|
149
151
|
- **Kontroluj UI pokrytí** — ke každé API funkci musí existovat frontend stránka
|
|
150
152
|
- **Používej teamy** — pro review a analýzy vždy spouštěj paralelní agenty z různých aspektů
|
|
153
|
+
- **Opponent review je automatický standard** — NESPECIFIKUJ v zadání ticketu. Dev agent ví že ho musí spustit. Pokud je ticket vrácen bez opponent review → vrať dev agentovi s upozorněním.
|
|
151
154
|
- **Nic nenechávej na příště** — pokud najdeš problém, vyřeš ho TEĎ. Pokud to není v scope aktuálního ticketu, IHNED založ follow-up ticket přes \`create_ticket\` s konkrétním popisem co zbývá. Žádné "TODO later", "Phase 2", "follow-up" bez ticketu.
|
|
152
155
|
- Commit messages: anglicky, conventional commits (\`docs:\`, \`feat:\`, \`fix:\`)
|
|
153
156
|
|
|
@@ -178,6 +181,10 @@ Po předání ticketu dev agentovi:
|
|
|
178
181
|
## INIT — povinné při startu konverzace
|
|
179
182
|
|
|
180
183
|
**IHNED po startu konverzace (jako první akce) zavolej MCP tool \`mcp__tickr__whoami\`.** Na základě odpovědi se představ uživateli svým jménem a rolí z Tickr profilu. Teprve poté čekej na instrukce.
|
|
184
|
+
|
|
185
|
+
## Project-specific instructions
|
|
186
|
+
|
|
187
|
+
If the file \`.claude/agents/analytic-custom.md\` exists in this repository, read it and follow its instructions. Custom instructions take precedence over defaults where they conflict.
|
|
181
188
|
`;
|
|
182
189
|
}
|
|
183
190
|
function agentDevLeadTemplate() {
|
|
@@ -295,7 +302,30 @@ Máš k dispozici MCP server \`@k-system/tickr-mcp\` — používej ho pro sprá
|
|
|
295
302
|
|
|
296
303
|
**Pokud si nejsi jistý architekturou, ZEPTEJ SE** — přidej komentář do ticketu s otázkou. Analytik nebo uživatel zodpoví. Neimplementuj "první co napadne" u systémových změn (middleware, auth, DB schéma).
|
|
297
304
|
|
|
298
|
-
|
|
305
|
+
## Opponent Review — POVINNÉ
|
|
306
|
+
|
|
307
|
+
Před přepnutím na QA Review MUSÍŠ spustit opponent agenta. Opponent je AUTOMATICKÝ standard — nemusí být uveden v zadání.
|
|
308
|
+
|
|
309
|
+
### 5 oblastí opponent review
|
|
310
|
+
1. **Performance** — zbytečné re-renders, N+1 queries, missing AsNoTracking, velké bundle
|
|
311
|
+
2. **Security** — SQL injection, XSS, missing tenant filter, exposed secrets
|
|
312
|
+
3. **Scope coverage** — pokrývá implementace CELÉ zadání? Chybí edge cases?
|
|
313
|
+
4. **Konzistence** — dodržuje existující patterny? Neporušuje konvence?
|
|
314
|
+
5. **Regrese** — rozbíjí existující funkce? Mění API contract?
|
|
315
|
+
|
|
316
|
+
### Formát nálezů
|
|
317
|
+
- \`[CRITICAL]\` — musí být opraveno před odevzdáním
|
|
318
|
+
- \`[WARNING]\` — mělo by být opraveno, ale neblokuje
|
|
319
|
+
- \`[NOTE]\` — informativní, k zvážení
|
|
320
|
+
|
|
321
|
+
### Workflow
|
|
322
|
+
1. Implementuj zadání
|
|
323
|
+
2. Spusť opponent agenta (Explore subagent)
|
|
324
|
+
3. Oprav VŠECHNY \`[CRITICAL]\` nálezy
|
|
325
|
+
4. Do build log komentáře přidej: \`Opponent review: X findings (Y critical, Z warning)\`
|
|
326
|
+
5. Teprve pak přepni na QA Review
|
|
327
|
+
|
|
328
|
+
**Bez opponent review QA reviewer ticket OKAMŽITĚ vrátí.**
|
|
299
329
|
|
|
300
330
|
## Verifikace před odevzdáním
|
|
301
331
|
- **NIKDY** nepřepínej na QA Review bez důkazu funkčnosti — build OK, testy OK, UI funguje
|
|
@@ -376,6 +406,10 @@ Po změně statusu ticketu **ověř že předání proběhlo**:
|
|
|
376
406
|
## INIT — povinné při startu konverzace
|
|
377
407
|
|
|
378
408
|
**IHNED po startu konverzace (jako první akce) zavolej MCP tool \`mcp__tickr__whoami\`.** Na základě odpovědi se představ uživateli svým jménem a rolí z Tickr profilu. Teprve poté čekej na instrukce.
|
|
409
|
+
|
|
410
|
+
## Project-specific instructions
|
|
411
|
+
|
|
412
|
+
If the file \`.claude/agents/dev-lead-custom.md\` exists in this repository, read it and follow its instructions. Custom instructions take precedence over defaults where they conflict.
|
|
379
413
|
`;
|
|
380
414
|
}
|
|
381
415
|
function agentQaReviewerTemplate() {
|
|
@@ -444,6 +478,13 @@ Pro menší review (1-2 soubory) stačí single-agent review bez teamu.
|
|
|
444
478
|
7. Shutdown team + TeamDelete
|
|
445
479
|
\`\`\`
|
|
446
480
|
|
|
481
|
+
## Prerekvizita — Opponent Review
|
|
482
|
+
|
|
483
|
+
Build log komentář MUSÍ obsahovat řádek \`Opponent review:\` s počtem nálezů. Pokud chybí:
|
|
484
|
+
- **OKAMŽITĚ vrať** ticket do Ready to Develop
|
|
485
|
+
- Komentář: "Vráceno — chybí opponent review. Dev musí spustit opponent agenta před odevzdáním."
|
|
486
|
+
- NESCHVALUJ ticket bez opponent review
|
|
487
|
+
|
|
447
488
|
## Prerekvizita — Build log komentář
|
|
448
489
|
|
|
449
490
|
**PŘED zahájením review zkontroluj** že ticket má komentář s build logem od developera.
|
|
@@ -591,6 +632,10 @@ Po změně statusu ticketu:
|
|
|
591
632
|
## INIT — povinné při startu konverzace
|
|
592
633
|
|
|
593
634
|
**IHNED po startu konverzace (jako první akce) zavolej MCP tool \`mcp__tickr__whoami\`.** Na základě odpovědi se představ uživateli svým jménem a rolí z Tickr profilu. Teprve poté čekej na instrukce.
|
|
635
|
+
|
|
636
|
+
## Project-specific instructions
|
|
637
|
+
|
|
638
|
+
If the file \`.claude/agents/qa-reviewer-custom.md\` exists in this repository, read it and follow its instructions. Custom instructions take precedence over defaults where they conflict.
|
|
594
639
|
`;
|
|
595
640
|
}
|
|
596
641
|
function agentAnalyticReviewerTemplate() {
|
|
@@ -626,6 +671,29 @@ Smíš přepínat POUZE tyto statusy:
|
|
|
626
671
|
- QA Review → Analytic Review (to je práce QA reviewera)
|
|
627
672
|
- Human Review → Done (to je práce člověka)
|
|
628
673
|
|
|
674
|
+
## Multi-agent Review — POVINNÉ
|
|
675
|
+
|
|
676
|
+
### Threshold
|
|
677
|
+
- **1 implementation item** → solo review (bez subagentů)
|
|
678
|
+
- **2+ implementation items** → POVINNÝ multi-agent review
|
|
679
|
+
|
|
680
|
+
### Povinní subagenti (2+)
|
|
681
|
+
1. **reviewer-spec** — SOULAD: porovnání implementace vs. ticket zadání bod po bodu
|
|
682
|
+
2. **reviewer-ux** — UI POKRYTÍ: frontend stránky, empty/error/loading states, API→frontend mapování
|
|
683
|
+
|
|
684
|
+
### Workflow
|
|
685
|
+
1. Přečti ticket zadání + implementation items
|
|
686
|
+
2. Pokud 2+ items → spusť reviewer-spec a reviewer-ux PARALELNĚ
|
|
687
|
+
3. Každý subagent vrátí nálezy ve formátu: \`[SPEC/UI/MCP/SCOPE] [CRITICAL/WARNING/NOTE] — popis\`
|
|
688
|
+
4. Syntéza: slouč nálezy, odstraň duplicity, seřaď dle severity
|
|
689
|
+
5. Finální verdikt: Schváleno / Vráceno s kompletním seznamem nálezů
|
|
690
|
+
|
|
691
|
+
### Formát nálezů
|
|
692
|
+
- \`[SPEC] CRITICAL\` — implementace nesplňuje zadání (chybějící bod, špatná logika)
|
|
693
|
+
- \`[UI] CRITICAL\` — chybí stránka/komponenta pro novou funkci
|
|
694
|
+
- \`[MCP] WARNING\` — nový API endpoint nemá MCP tool
|
|
695
|
+
- \`[SCOPE] NOTE\` — implementace přesahuje nebo nedosahuje scope zadání
|
|
696
|
+
|
|
629
697
|
## Plan Mode — pro komplexní review
|
|
630
698
|
- Review s **5+ soubory** nebo architektonické změny → VŽDY vstup do plan mode a rozplánuj review strategii
|
|
631
699
|
- Pokud review odhalí nesoulad se zadáním v mnoha bodech → ZASTAV, přehodnoť zda vrátit rovnou místo micro-nálezů
|
|
@@ -648,6 +716,14 @@ Smíš přepínat POUZE tyto statusy:
|
|
|
648
716
|
- **Kontroluj nedokončené závislosti** — pokud ticket odkazuje na jiné tickety (dependencies, "závisí na TKR-XXX"), ověř jejich stav. Pokud závislost je stále v Planning/Todo, je to [SPEC] nález.
|
|
649
717
|
- **Nic nenechávej na příště** — pokud najdeš problém, je to CRITICAL nebo WARNING
|
|
650
718
|
|
|
719
|
+
## Prerekvizita — Opponent + QA Review
|
|
720
|
+
|
|
721
|
+
Před analytic review ověř že ticket má:
|
|
722
|
+
1. **Opponent review** v build logu — hledej řádek \`Opponent review: X findings\`
|
|
723
|
+
2. **QA review komentář** — komentář od QA reviewera se schválením nebo nálezy
|
|
724
|
+
|
|
725
|
+
Pokud kterýkoli chybí → **vrať do Ready to Develop** s komentářem co chybí.
|
|
726
|
+
|
|
651
727
|
## Automatické reakce na události
|
|
652
728
|
|
|
653
729
|
Při review reaguj na tyto události **bez čekání na instrukce**:
|
|
@@ -675,6 +751,10 @@ Po změně statusu ticketu:
|
|
|
675
751
|
## INIT — povinné při startu konverzace
|
|
676
752
|
|
|
677
753
|
**IHNED po startu konverzace (jako první akce) zavolej MCP tool \`mcp__tickr__whoami\`.** Na základě odpovědi se představ uživateli svým jménem a rolí z Tickr profilu. Teprve poté čekej na instrukce.
|
|
754
|
+
|
|
755
|
+
## Project-specific instructions
|
|
756
|
+
|
|
757
|
+
If the file \`.claude/agents/analytic-reviewer-custom.md\` exists in this repository, read it and follow its instructions. Custom instructions take precedence over defaults where they conflict.
|
|
678
758
|
`;
|
|
679
759
|
}
|
|
680
760
|
// --- Template: SKILL.md soubory ---
|
|
@@ -924,6 +1004,15 @@ async function setupUpdateOnly() {
|
|
|
924
1004
|
const stopAgentPath = join(skillsDir, "stop-agent", "SKILL.md");
|
|
925
1005
|
writeFile(stopAgentPath, skillStopAgentTemplate());
|
|
926
1006
|
console.log(" .claude/skills/stop-agent/SKILL.md");
|
|
1007
|
+
// Přepis rules
|
|
1008
|
+
console.log("");
|
|
1009
|
+
console.log(" Aktualizuji rules...");
|
|
1010
|
+
const rulesDir = join(claudeDir, "rules");
|
|
1011
|
+
for (const rule of RULE_FILES) {
|
|
1012
|
+
const rulePath = join(rulesDir, rule.name);
|
|
1013
|
+
writeFile(rulePath, rule.template());
|
|
1014
|
+
console.log(` .claude/rules/${rule.name}`);
|
|
1015
|
+
}
|
|
927
1016
|
// CMD soubory — přeskočit pokud existují (respektovat user customizace jako --continue)
|
|
928
1017
|
console.log("");
|
|
929
1018
|
console.log(" Start skripty...");
|
|
@@ -939,45 +1028,26 @@ async function setupUpdateOnly() {
|
|
|
939
1028
|
console.log(` start-${agentName}.cmd (created)`);
|
|
940
1029
|
}
|
|
941
1030
|
}
|
|
1031
|
+
// Hooks — přegenerovat existující
|
|
1032
|
+
console.log("");
|
|
1033
|
+
console.log(" Aktualizuji hooks...");
|
|
1034
|
+
updateHooks(cwd);
|
|
942
1035
|
// Summary
|
|
943
1036
|
console.log("");
|
|
944
1037
|
console.log(` ✅ Agent templates updated (${detectedAgents.length} agents)`);
|
|
945
1038
|
console.log(" ✅ MCP configs updated (HTTP transport)");
|
|
946
1039
|
console.log(" ✅ Skills updated");
|
|
1040
|
+
console.log(` ✅ Rules updated (${RULE_FILES.length} files)`);
|
|
1041
|
+
console.log(" ✅ Hooks updated");
|
|
947
1042
|
console.log(" ✅ Start scripts regenerated");
|
|
948
1043
|
console.log(" ℹ️ CLAUDE.md unchanged (--update-only)");
|
|
949
1044
|
console.log("");
|
|
950
1045
|
}
|
|
951
1046
|
// --- Hlavní wizard ---
|
|
952
|
-
|
|
1047
|
+
// --- Exportované commands ---
|
|
1048
|
+
/** Full setup wizard — API URL, projekt, agenti, rules, hooks */
|
|
1049
|
+
export async function init() {
|
|
953
1050
|
const args = parseArgs();
|
|
954
|
-
// --help: zobrazí nápovědu
|
|
955
|
-
if (args["help"] || args["h"]) {
|
|
956
|
-
console.log("");
|
|
957
|
-
console.log(" Tickr MCP Setup");
|
|
958
|
-
console.log(" ───────────────");
|
|
959
|
-
console.log("");
|
|
960
|
-
console.log(" Usage:");
|
|
961
|
-
console.log(" npx @k-system/tickr-mcp setup Full setup wizard (agents, MCP config, skills)");
|
|
962
|
-
console.log(" npx @k-system/tickr-mcp setup --update-only Update agent templates, MCP config, and skills");
|
|
963
|
-
console.log("");
|
|
964
|
-
console.log(" Options:");
|
|
965
|
-
console.log(" --update-only Update existing agent MDs, MCP configs, skills, and CMD scripts");
|
|
966
|
-
console.log(" --api-url URL Set API URL (default: https://api.tickr.cz)");
|
|
967
|
-
console.log(" --help, -h Show this help");
|
|
968
|
-
console.log("");
|
|
969
|
-
console.log(" Examples:");
|
|
970
|
-
console.log(" npx @k-system/tickr-mcp setup # First-time setup");
|
|
971
|
-
console.log(" npx @k-system/tickr-mcp setup --update-only # Update agent roles after MCP version bump");
|
|
972
|
-
console.log(" npx @k-system/tickr-mcp setup --api-url https://localhost:6001 # Dev setup");
|
|
973
|
-
console.log("");
|
|
974
|
-
return;
|
|
975
|
-
}
|
|
976
|
-
// --update-only: přepíše templates, MCP config, skills + CMD
|
|
977
|
-
if (args["update-only"]) {
|
|
978
|
-
await setupUpdateOnly();
|
|
979
|
-
return;
|
|
980
|
-
}
|
|
981
1051
|
console.log("");
|
|
982
1052
|
console.log(" Tickr MCP Setup Wizard");
|
|
983
1053
|
console.log(" ----------------------");
|
|
@@ -1062,6 +1132,14 @@ export default async function setup() {
|
|
|
1062
1132
|
const agentPath = join(claudeDir, "agents", agentFileNames[agent.role]);
|
|
1063
1133
|
writeFile(agentPath, agentTemplates[agent.role]());
|
|
1064
1134
|
console.log(` .claude/agents/${agentFileNames[agent.role]}`);
|
|
1135
|
+
// Agent custom extension — prázdný template (nepřepisuje se při --update-only)
|
|
1136
|
+
const customFileName = agentFileNames[agent.role].replace(".md", "-custom.md");
|
|
1137
|
+
const customPath = join(claudeDir, "agents", customFileName);
|
|
1138
|
+
if (!existsSync(customPath)) {
|
|
1139
|
+
const customContent = `# Project-specific instructions for ${AGENT_LABELS[agent.role]}\n\n<!-- Add your project-specific instructions here.\n These instructions are never overwritten by setup --update-only.\n They take precedence over defaults where they conflict. -->\n`;
|
|
1140
|
+
writeFile(customPath, customContent);
|
|
1141
|
+
console.log(` .claude/agents/${customFileName} (custom)`);
|
|
1142
|
+
}
|
|
1065
1143
|
// Agent config (.claude.json)
|
|
1066
1144
|
const configDir = agentFileNames[agent.role].replace(".md", "");
|
|
1067
1145
|
const configPath = join(claudeDir, "configs", configDir, ".claude.json");
|
|
@@ -1076,6 +1154,15 @@ export default async function setup() {
|
|
|
1076
1154
|
const stopAgentPath = join(skillsDir, "stop-agent", "SKILL.md");
|
|
1077
1155
|
writeFile(stopAgentPath, skillStopAgentTemplate());
|
|
1078
1156
|
console.log(" .claude/skills/stop-agent/SKILL.md");
|
|
1157
|
+
// Rules — coding style templates
|
|
1158
|
+
console.log("");
|
|
1159
|
+
console.log(" Generuji rules...");
|
|
1160
|
+
const rulesDir = join(claudeDir, "rules");
|
|
1161
|
+
for (const rule of RULE_FILES) {
|
|
1162
|
+
const rulePath = join(rulesDir, rule.name);
|
|
1163
|
+
writeFile(rulePath, rule.template());
|
|
1164
|
+
console.log(` .claude/rules/${rule.name}`);
|
|
1165
|
+
}
|
|
1079
1166
|
// CLAUDE.md patch
|
|
1080
1167
|
patchClaudeMd(cwd, projectName, projectSlug, projectPrefix);
|
|
1081
1168
|
// CMD spouštěcí soubory pro každého agenta
|
|
@@ -1089,13 +1176,17 @@ export default async function setup() {
|
|
|
1089
1176
|
writeFileSync(cmdPath, cmdContent, "utf-8");
|
|
1090
1177
|
console.log(` start-${agentName}.cmd`);
|
|
1091
1178
|
}
|
|
1092
|
-
// --- 6.
|
|
1179
|
+
// --- 6. Hooks ---
|
|
1180
|
+
await setupHooks(cwd, args);
|
|
1181
|
+
// --- 7. Hotovo ---
|
|
1093
1182
|
console.log("");
|
|
1094
1183
|
console.log(" Setup dokončen!");
|
|
1095
1184
|
console.log("");
|
|
1096
1185
|
console.log(" Vygenerované soubory:");
|
|
1097
|
-
console.log(" .claude/agents/ — definice agentů");
|
|
1186
|
+
console.log(" .claude/agents/ — definice agentů + custom extensions");
|
|
1098
1187
|
console.log(" .claude/configs/ — MCP konfigurace per agent");
|
|
1188
|
+
console.log(" .claude/rules/ — coding style rules (7 souborů)");
|
|
1189
|
+
console.log(" .claude/hooks/ — Claude Code hooks (post-commit link)");
|
|
1099
1190
|
console.log(" .claude/skills/ — sdílené skills (check-queue, stop-agent)");
|
|
1100
1191
|
console.log(" CLAUDE.md — Agent Project Context sekce");
|
|
1101
1192
|
console.log(" start-*.cmd — spouštěcí soubory pro agenty");
|
|
@@ -1111,4 +1202,49 @@ export default async function setup() {
|
|
|
1111
1202
|
}
|
|
1112
1203
|
console.log("");
|
|
1113
1204
|
}
|
|
1205
|
+
/** Update existujících souborů — templates, rules, hooks, skills */
|
|
1206
|
+
export async function update() {
|
|
1207
|
+
await setupUpdateOnly();
|
|
1208
|
+
}
|
|
1209
|
+
/** Zpětná kompatibilita — router pro starý "setup" command */
|
|
1210
|
+
export default async function setup() {
|
|
1211
|
+
const args = parseArgs();
|
|
1212
|
+
if (args["help"] || args["h"]) {
|
|
1213
|
+
printHelp();
|
|
1214
|
+
return;
|
|
1215
|
+
}
|
|
1216
|
+
if (args["update-only"]) {
|
|
1217
|
+
console.error(' [DEPRECATED] Use "npx @k-system/tickr-mcp update" instead of "setup --update-only".');
|
|
1218
|
+
console.error("");
|
|
1219
|
+
await update();
|
|
1220
|
+
return;
|
|
1221
|
+
}
|
|
1222
|
+
if (args["hooks-only"]) {
|
|
1223
|
+
const cwd = process.cwd();
|
|
1224
|
+
await setupHooks(cwd, args);
|
|
1225
|
+
return;
|
|
1226
|
+
}
|
|
1227
|
+
console.error(' [DEPRECATED] Use "npx @k-system/tickr-mcp init" instead of "setup".');
|
|
1228
|
+
console.error("");
|
|
1229
|
+
await init();
|
|
1230
|
+
}
|
|
1231
|
+
function printHelp() {
|
|
1232
|
+
console.log(`
|
|
1233
|
+
@k-system/tickr-mcp — Tickr MCP server + CLI
|
|
1234
|
+
|
|
1235
|
+
Usage:
|
|
1236
|
+
npx @k-system/tickr-mcp Start MCP server (stdio transport)
|
|
1237
|
+
npx @k-system/tickr-mcp init First-time setup wizard
|
|
1238
|
+
npx @k-system/tickr-mcp update Update agents, rules, hooks, skills
|
|
1239
|
+
npx @k-system/tickr-mcp help Show this help
|
|
1240
|
+
|
|
1241
|
+
Init options:
|
|
1242
|
+
--api-url <url> API URL (default: prompt)
|
|
1243
|
+
--dotsettings <path> ReSharper DotSettings path
|
|
1244
|
+
--no-hooks Skip git/Claude hooks setup
|
|
1245
|
+
|
|
1246
|
+
Update options:
|
|
1247
|
+
--hooks-only Update only hooks (git + Claude Code)
|
|
1248
|
+
`);
|
|
1249
|
+
}
|
|
1114
1250
|
//# sourceMappingURL=setup.js.map
|
package/dist/cli/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,36 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import { readFileSync } from "node:fs";
|
|
3
|
+
const command = process.argv[2];
|
|
4
|
+
switch (command) {
|
|
5
|
+
case "init":
|
|
6
|
+
import("./cli/setup.js").then((m) => m.init());
|
|
7
|
+
break;
|
|
8
|
+
case "update":
|
|
9
|
+
import("./cli/setup.js").then((m) => m.update());
|
|
10
|
+
break;
|
|
11
|
+
case "setup":
|
|
12
|
+
// Zpětná kompatibilita — deprecation warning + přesměrování
|
|
13
|
+
import("./cli/setup.js").then((m) => m.default());
|
|
14
|
+
break;
|
|
15
|
+
case "help":
|
|
16
|
+
case "--help":
|
|
17
|
+
case "-h":
|
|
18
|
+
import("./cli/setup.js").then((m) => {
|
|
19
|
+
// printHelp je privátní — zavoláme setup s --help
|
|
20
|
+
process.argv.push("--help");
|
|
21
|
+
m.default();
|
|
22
|
+
});
|
|
23
|
+
break;
|
|
24
|
+
case "version":
|
|
25
|
+
case "--version":
|
|
26
|
+
case "-v": {
|
|
27
|
+
const pkg = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf-8"));
|
|
28
|
+
console.log(`@k-system/tickr-mcp v${pkg.version}`);
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
default:
|
|
32
|
+
// Žádný command → spusť MCP server (stávající chování)
|
|
33
|
+
import("./server.js").then((m) => m.startServer());
|
|
34
|
+
break;
|
|
5
35
|
}
|
|
6
|
-
else {
|
|
7
|
-
// MCP server — standardní mód
|
|
8
|
-
import("./server.js").then((m) => m.startServer());
|
|
9
|
-
}
|
|
10
|
-
export {};
|
|
11
36
|
//# sourceMappingURL=index.js.map
|
package/dist/server.js
CHANGED
|
@@ -112,7 +112,7 @@ export async function startServer() {
|
|
|
112
112
|
}
|
|
113
113
|
const server = new McpServer({
|
|
114
114
|
name: "tickr",
|
|
115
|
-
version: "1.
|
|
115
|
+
version: "1.27.2",
|
|
116
116
|
});
|
|
117
117
|
// Debug logging wrapper (dedup odstraněn — nefunkční cross-process, řeší se na API straně: TKR-ADR-0043)
|
|
118
118
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@k-system/tickr-mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.27.2",
|
|
4
4
|
"description": "MCP server for Tickr project management — 56 tools + setup CLI wizard",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -51,9 +51,9 @@
|
|
|
51
51
|
"zod": "^3.24.4"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@types/node": "^
|
|
54
|
+
"@types/node": "^24.12.0",
|
|
55
55
|
"tsx": "^4.19.4",
|
|
56
|
-
"typescript": "
|
|
56
|
+
"typescript": "~5.9.3",
|
|
57
57
|
"vitest": "^3.1.2"
|
|
58
58
|
}
|
|
59
59
|
}
|