@bcelep/capint 0.6.5 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENT.md +1 -1
- package/CHANGELOG.md +23 -0
- package/bin/capint.js +11 -2
- package/docs/PRD-capint.md +94 -0
- package/docs/PRD-v0.5-agent-capability-activation.md +10 -1
- package/docs/architecture-decisions.md +2 -0
- package/docs/capint-rehber.md +439 -0
- package/docs/capint-stack.md +118 -0
- package/docs/community.md +19 -0
- package/docs/conventions/daily-use.md +15 -1
- package/docs/eval/beginner-test-protocol.md +39 -0
- package/docs/eval/survey-template.md +16 -0
- package/docs/generated/README.md +6 -0
- package/docs/generated/execution-intent.v1.md +211 -0
- package/docs/generated/explanation.v1.md +127 -0
- package/docs/generated/explanation.v2.md +142 -0
- package/docs/generated/ui-api.v1.md +178 -0
- package/docs/maintainer-dogfood.md +3 -2
- package/docs/recipes/memory-graph-pairing.md +200 -0
- package/docs/skill-audit-runbook.md +32 -0
- package/locales/en.json +27 -0
- package/locales/tr.json +27 -0
- package/package.json +4 -2
- package/projections/session-start.md +14 -2
- package/schemas/execution-intent.v1.json +69 -0
- package/schemas/explanation.v2.json +51 -0
- package/schemas/ui-api.v1.json +85 -0
- package/scripts/generate-schema-docs.mjs +104 -0
- package/scripts/release-check.mjs +10 -0
- package/skills/prismx-skill-gateway/SKILL.md +10 -3
- package/src/commands/doctor.js +9 -0
- package/src/commands/feedback.js +29 -0
- package/src/commands/init.js +12 -0
- package/src/commands/providers.js +54 -0
- package/src/commands/skill.js +27 -0
- package/src/commands/stack.js +97 -0
- package/src/lib/audit.js +9 -1
- package/src/lib/contract.js +9 -0
- package/src/lib/doctor.js +69 -3
- package/src/lib/execution-policy.js +3 -1
- package/src/lib/explanation-plain.js +72 -0
- package/src/lib/explanation.js +26 -2
- package/src/lib/feedback.js +65 -0
- package/src/lib/i18n.js +43 -0
- package/src/lib/providers/doctor.js +205 -0
- package/src/lib/scaffold/index.js +2 -1
- package/src/lib/scaffold/presets.js +20 -0
- package/src/lib/skill-audit.js +141 -0
- package/src/lib/stack/index.js +259 -0
- package/src/lib/ui-server.js +92 -5
- package/templates/minimal/DONE.md +10 -0
- package/templates/minimal/GUNLUK.md +15 -1
- package/templates/minimal/docs/conventions/daily-use.md +3 -1
- package/ui/app.js +100 -10
- package/ui/index.html +22 -1
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# CapInt UI Wizard API
|
|
2
|
+
|
|
3
|
+
> Auto-generated from `schemas/ui-api.v1.json`. Do not edit by hand.
|
|
4
|
+
|
|
5
|
+
**$id:** `https://capint.dev/schemas/ui-api.v1.json`
|
|
6
|
+
|
|
7
|
+
## Properties
|
|
8
|
+
|
|
9
|
+
| Field | Type | Required |
|
|
10
|
+
|-------|------|----------|
|
|
11
|
+
|
|
12
|
+
## Raw schema
|
|
13
|
+
|
|
14
|
+
```json
|
|
15
|
+
{
|
|
16
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
17
|
+
"$id": "https://capint.dev/schemas/ui-api.v1.json",
|
|
18
|
+
"title": "CapInt UI Wizard API",
|
|
19
|
+
"definitions": {
|
|
20
|
+
"RouteRequest": {
|
|
21
|
+
"type": "object",
|
|
22
|
+
"required": [
|
|
23
|
+
"task"
|
|
24
|
+
],
|
|
25
|
+
"properties": {
|
|
26
|
+
"task": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"minLength": 1
|
|
29
|
+
},
|
|
30
|
+
"locale": {
|
|
31
|
+
"enum": [
|
|
32
|
+
"tr",
|
|
33
|
+
"en"
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"RouteResponse": {
|
|
39
|
+
"type": "object",
|
|
40
|
+
"required": [
|
|
41
|
+
"result",
|
|
42
|
+
"text_report",
|
|
43
|
+
"chat_copy"
|
|
44
|
+
],
|
|
45
|
+
"properties": {
|
|
46
|
+
"result": {
|
|
47
|
+
"type": "object",
|
|
48
|
+
"required": [
|
|
49
|
+
"execution_intent"
|
|
50
|
+
],
|
|
51
|
+
"properties": {
|
|
52
|
+
"execution_intent": {
|
|
53
|
+
"$ref": "execution-intent.v1.json"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"text_report": {
|
|
58
|
+
"type": "string"
|
|
59
|
+
},
|
|
60
|
+
"chat_copy": {
|
|
61
|
+
"type": "string"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"HealthResponse": {
|
|
66
|
+
"type": "object",
|
|
67
|
+
"required": [
|
|
68
|
+
"ok",
|
|
69
|
+
"doctor",
|
|
70
|
+
"status"
|
|
71
|
+
],
|
|
72
|
+
"properties": {
|
|
73
|
+
"ok": {
|
|
74
|
+
"type": "boolean"
|
|
75
|
+
},
|
|
76
|
+
"doctor": {
|
|
77
|
+
"type": "object"
|
|
78
|
+
},
|
|
79
|
+
"status": {
|
|
80
|
+
"type": "object",
|
|
81
|
+
"properties": {
|
|
82
|
+
"skills_on_disk": {
|
|
83
|
+
"type": "number"
|
|
84
|
+
},
|
|
85
|
+
"core_skills": {
|
|
86
|
+
"type": "number"
|
|
87
|
+
},
|
|
88
|
+
"matrix_version": {
|
|
89
|
+
"type": [
|
|
90
|
+
"string",
|
|
91
|
+
"null"
|
|
92
|
+
]
|
|
93
|
+
},
|
|
94
|
+
"capint_package": {
|
|
95
|
+
"type": "string"
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"RecoverRequest": {
|
|
102
|
+
"type": "object",
|
|
103
|
+
"properties": {
|
|
104
|
+
"apply": {
|
|
105
|
+
"type": "boolean",
|
|
106
|
+
"default": false
|
|
107
|
+
},
|
|
108
|
+
"latest": {
|
|
109
|
+
"type": "boolean",
|
|
110
|
+
"default": true
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
"FeedbackRequest": {
|
|
115
|
+
"type": "object",
|
|
116
|
+
"properties": {
|
|
117
|
+
"rating": {
|
|
118
|
+
"type": "integer",
|
|
119
|
+
"minimum": 1,
|
|
120
|
+
"maximum": 5
|
|
121
|
+
},
|
|
122
|
+
"comment": {
|
|
123
|
+
"type": "string",
|
|
124
|
+
"maxLength": 2000
|
|
125
|
+
},
|
|
126
|
+
"source": {
|
|
127
|
+
"type": "string",
|
|
128
|
+
"default": "ui"
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
"paths": {
|
|
134
|
+
"/api/health": {
|
|
135
|
+
"get": {
|
|
136
|
+
"response": {
|
|
137
|
+
"$ref": "#/definitions/HealthResponse"
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
"/api/route": {
|
|
142
|
+
"post": {
|
|
143
|
+
"request": {
|
|
144
|
+
"$ref": "#/definitions/RouteRequest"
|
|
145
|
+
},
|
|
146
|
+
"response": {
|
|
147
|
+
"$ref": "#/definitions/RouteResponse"
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
"/api/recover": {
|
|
152
|
+
"post": {
|
|
153
|
+
"request": {
|
|
154
|
+
"$ref": "#/definitions/RecoverRequest"
|
|
155
|
+
},
|
|
156
|
+
"response": {
|
|
157
|
+
"type": "object"
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
"/api/feedback": {
|
|
162
|
+
"post": {
|
|
163
|
+
"request": {
|
|
164
|
+
"$ref": "#/definitions/FeedbackRequest"
|
|
165
|
+
},
|
|
166
|
+
"response": {
|
|
167
|
+
"type": "object",
|
|
168
|
+
"properties": {
|
|
169
|
+
"ok": {
|
|
170
|
+
"type": "boolean"
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
```
|
|
@@ -29,7 +29,7 @@ node bin/capint.js ide sync --targets cursor,claude,gemini,antigravity
|
|
|
29
29
|
npm link # global `capint` → bu repo
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
Meta: [`.capint/context.json`](../.capint/context.json) · Oturum: [HANDOFF.md](../HANDOFF.md)
|
|
32
|
+
Meta: [`.capint/context.json`](../.capint/context.json) · Oturum: [HANDOFF.md](../HANDOFF.md) · Tamamlanan: [DONE.md](../DONE.md)
|
|
33
33
|
|
|
34
34
|
---
|
|
35
35
|
|
|
@@ -46,7 +46,8 @@ npm run release-check
|
|
|
46
46
|
node bin/capint.js route --json "debug login"
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
-
Chat: [GUNLUK.md](../GUNLUK.md) — terminal zorunlu değil; route/doctor debug içindir.
|
|
49
|
+
Chat: [GUNLUK.md](../GUNLUK.md) — terminal zorunlu değil; route/doctor debug içindir.
|
|
50
|
+
Kapanış: `kapan` → agent `DONE.md` + `HANDOFF.md` günceller.
|
|
50
51
|
|
|
51
52
|
---
|
|
52
53
|
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
# Memory & graph pairing (CapInt + sidecars)
|
|
2
|
+
|
|
3
|
+
> **Tek giriş:** [capint-stack.md](../capint-stack.md) — ANWS workflows + graphify + agentmemory + init.
|
|
4
|
+
> Bu dosya katman 3–4 detay/recipe.
|
|
5
|
+
|
|
6
|
+
CapInt **routes and gates** memory/graph usage. It does **not** embed MemPalace, agentmemory, or graphify. Use this recipe to wire optional sidecars.
|
|
7
|
+
|
|
8
|
+
**Architecture:** [architecture-decisions.md](../architecture-decisions.md) — adapters only, default off.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Roles
|
|
13
|
+
|
|
14
|
+
| Tool | Role | CapInt integration |
|
|
15
|
+
|------|------|-------------------|
|
|
16
|
+
| **CapInt local** | HANDOFF, AGENT, design, `context_pack` | Always (Tier 0) |
|
|
17
|
+
| **[graphify](https://github.com/safishamsi/graphify)** | Folder → `GRAPH_REPORT.md` + `graph.json` | File contract (Tier 1) |
|
|
18
|
+
| **[agentmemory](https://github.com/rohitg00/agentmemory)** | Session memory MCP server | Sidecar health (Tier 2) |
|
|
19
|
+
| **[MemPalace](https://github.com/MemPalace/mempalace)** | Python palace + MCP (optional alt) | Optional probe (Tier 3) |
|
|
20
|
+
|
|
21
|
+
CapInt decides **when** (`memory-retrieval`, `CAPINT_MEMORY`, `CAPINT_GRAPH`). Sidecars provide **how**.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Tier 0 — Local (no install)
|
|
26
|
+
|
|
27
|
+
Works today without extra tools.
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
capint route "memory lookup geçen karar"
|
|
31
|
+
# Agent reads HANDOFF.md + context-memory-bridge skill
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Optional hot-path file search on route:
|
|
35
|
+
|
|
36
|
+
```powershell
|
|
37
|
+
$env:CAPINT_LOCAL_CONTEXT="1"
|
|
38
|
+
capint route --json "memory lookup geçen karar"
|
|
39
|
+
# execution_intent.local_adapters populated when flag set
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Check:** `capint providers doctor`
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Tier 1 — graphify (file producer)
|
|
47
|
+
|
|
48
|
+
1. Install graphify (PyPI package name may be `graphifyy`):
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
pipx install graphifyy
|
|
52
|
+
graphify install # skill into Claude/Cursor host
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
2. Build graph once per repo (or on major changes):
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
graphify .
|
|
59
|
+
# or: graphify ./src --update
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
3. Point CapInt at outputs (pick one layout):
|
|
63
|
+
|
|
64
|
+
**A — repo root (CapInt default paths)**
|
|
65
|
+
|
|
66
|
+
```text
|
|
67
|
+
GRAPH_REPORT.md
|
|
68
|
+
.capint/graph/graph.json
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Copy or symlink from `graphify-out/`:
|
|
72
|
+
|
|
73
|
+
```powershell
|
|
74
|
+
Copy-Item graphify-out/GRAPH_REPORT.md .
|
|
75
|
+
New-Item -ItemType Directory -Force .capint/graph
|
|
76
|
+
Copy-Item graphify-out/graph.json .capint/graph/graph.json
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**B — custom paths via `.capint/providers.json`**
|
|
80
|
+
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"graph": {
|
|
84
|
+
"driver": "local",
|
|
85
|
+
"paths": ["graphify-out/GRAPH_REPORT.md", "graphify-out/graph.json"]
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
4. Enable local adapters:
|
|
91
|
+
|
|
92
|
+
```powershell
|
|
93
|
+
$env:CAPINT_LOCAL_CONTEXT="1"
|
|
94
|
+
capint providers doctor
|
|
95
|
+
capint route --json "explain auth module dependencies"
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
CapInt never runs graphify — it only reads artifacts.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Tier 2 — agentmemory (MCP sidecar)
|
|
103
|
+
|
|
104
|
+
1. Install and start server:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
npm install -g @agentmemory/agentmemory
|
|
108
|
+
agentmemory # listens on :3111 by default
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
2. Wire Cursor (or your IDE):
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
agentmemory connect cursor
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
3. CapInt activation (when route needs memory providers):
|
|
118
|
+
|
|
119
|
+
```powershell
|
|
120
|
+
$env:CAPINT_MEMORY="1"
|
|
121
|
+
# optional remote:
|
|
122
|
+
# $env:AGENTMEMORY_URL="http://localhost:3111"
|
|
123
|
+
capint route --json "memory lookup geçen karar"
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
4. Verify sidecar:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
capint providers doctor --json
|
|
130
|
+
curl http://localhost:3111/agentmemory/health
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
**Do not** duplicate agentmemory hooks inside CapInt — let agentmemory capture sessions; CapInt gates routing.
|
|
134
|
+
|
|
135
|
+
**Pairs with graphify:** agentmemory remembers sessions; graphify structures the codebase. See agentmemory [pairings doc](https://github.com/rohitg00/agentmemory/blob/main/docs/recipes/pairings.md).
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Tier 3 — MemPalace (optional Python alt)
|
|
140
|
+
|
|
141
|
+
For Python-first teams already using the palace:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
uv tool install mempalace
|
|
145
|
+
mempalace init ~/projects/myapp
|
|
146
|
+
mempalace mine ~/.claude/projects/ --mode convos
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Use MemPalace MCP in the IDE separately. CapInt v0.7.x only **probes** CLI presence in `providers doctor`; full MCP adapter is backlog (0.8.0).
|
|
150
|
+
|
|
151
|
+
**Security:** Official sources only — [github.com/MemPalace/mempalace](https://github.com/MemPalace/mempalace) and [pypi.org/project/mempalace](https://pypi.org/project/mempalace/). Ignore impostor domains.
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Env reference
|
|
156
|
+
|
|
157
|
+
| Variable | Effect |
|
|
158
|
+
|----------|--------|
|
|
159
|
+
| `CAPINT_LOCAL_CONTEXT=1` | Attach `local_adapters` on route (file search + graph excerpts) |
|
|
160
|
+
| `CAPINT_MEMORY=1` | Allow memory provider activation (stub until 0.8 adapter) |
|
|
161
|
+
| `CAPINT_GRAPH=1` | Allow graph provider activation |
|
|
162
|
+
| `AGENTMEMORY_URL` | agentmemory server base URL (default `http://localhost:3111`) |
|
|
163
|
+
|
|
164
|
+
Matrix policy: providers default **off** until capability requires memory or flags set — see `provider_activation_policy` in `skill-routing-matrix.json`.
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Recommended stack (Cursor + CapInt)
|
|
169
|
+
|
|
170
|
+
```text
|
|
171
|
+
1. capint init / dogfood maintainer repo
|
|
172
|
+
2. graphify . → copy outputs to GRAPH_REPORT.md + .capint/graph/graph.json
|
|
173
|
+
3. agentmemory (background) + agentmemory connect cursor
|
|
174
|
+
4. CAPINT_LOCAL_CONTEXT=1 for file adapters on route
|
|
175
|
+
5. capint providers doctor → green Tier 0 + 1; Tier 2 if server up
|
|
176
|
+
6. Chat via GUNLUK / capint ui — memory-retrieval tasks route to context-memory-bridge
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Roadmap (CapInt)
|
|
182
|
+
|
|
183
|
+
| Version | Deliverable |
|
|
184
|
+
|---------|-------------|
|
|
185
|
+
| **0.7.x** | This recipe + `capint providers doctor` |
|
|
186
|
+
| **0.8.0** | Real `MemoryProvider` / `GraphProvider` adapters (HTTP/MCP delegate, not stubs) |
|
|
187
|
+
| **0.8.x** | `capint providers.json` template in init; optional `--with-memory-recipe` doc link |
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Troubleshooting
|
|
192
|
+
|
|
193
|
+
| Symptom | Fix |
|
|
194
|
+
|---------|-----|
|
|
195
|
+
| `provider_activation.activated: true` but empty results | Stubs in 0.7.x — use Tier 0/1 file paths or wait for 0.8 adapter |
|
|
196
|
+
| Graph excerpts always 0 | Run graphify; ensure `GRAPH_REPORT.md` or `graph.json` exists |
|
|
197
|
+
| agentmemory unreachable | Start server; check `AGENTMEMORY_URL` |
|
|
198
|
+
| Duplicate capture hooks | Use agentmemory OR IDE hooks, not both blindly |
|
|
199
|
+
|
|
200
|
+
**Diagnostic:** `capint providers doctor [--json]`
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Skill audit runbook (maintainer)
|
|
2
|
+
|
|
3
|
+
Quarterly checklist for registry bloat and orphan skills.
|
|
4
|
+
|
|
5
|
+
## Commands
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm run skill-audit # JSON report, exit 1 on issue-tier findings
|
|
9
|
+
capint skill audit # human-readable
|
|
10
|
+
capint audit --json # includes skill audit + doctor + contract drift
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Finding codes
|
|
14
|
+
|
|
15
|
+
| Code | Meaning | Action |
|
|
16
|
+
|------|---------|--------|
|
|
17
|
+
| `orphan_on_disk` | `skills/X/SKILL.md` not in registry | `capint skill pin X` or remove folder |
|
|
18
|
+
| `registry_ghost` | Registry entry missing on disk | Re-init bundle or remove from registry |
|
|
19
|
+
| `matrix_unreferenced` | Optional skill unused in matrix | Archive candidate (info only) |
|
|
20
|
+
| `stale_backup` | Backup older than 90 days | Prune `.capint/backups/` after review |
|
|
21
|
+
|
|
22
|
+
## Quarterly loop
|
|
23
|
+
|
|
24
|
+
1. Run `capint skill audit --json` on maintainer repo and one dogfood project.
|
|
25
|
+
2. Triage `issue` findings first (core ghosts).
|
|
26
|
+
3. Batch `orphan_on_disk` → pin project-specific skills or delete experiments.
|
|
27
|
+
4. Document decisions in CHANGELOG if registry tiers change.
|
|
28
|
+
5. Re-run `npm test` before publish.
|
|
29
|
+
|
|
30
|
+
## Out of scope (0.7.0)
|
|
31
|
+
|
|
32
|
+
`--archive` dry-run only in docs; physical archive moves planned for 0.7.1.
|
package/locales/en.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"ui.subtitle": "No terminal — write your task, review the plan, copy to chat.",
|
|
3
|
+
"ui.step.project": "Project",
|
|
4
|
+
"ui.step.task": "Task",
|
|
5
|
+
"ui.step.plan": "Plan",
|
|
6
|
+
"ui.step.chat": "Chat",
|
|
7
|
+
"ui.health.check": "Check",
|
|
8
|
+
"ui.health.checking": "Checking…",
|
|
9
|
+
"ui.health.ok": "✓ Doctor: OK",
|
|
10
|
+
"ui.health.fail": "✗ Doctor: issues found",
|
|
11
|
+
"ui.tooltip.installed": "installed = SKILL.md exists under skills/. It does not need to appear in the IDE skill picker.",
|
|
12
|
+
"ui.plan.why": "Why",
|
|
13
|
+
"ui.plan.technical": "Technical detail",
|
|
14
|
+
"ui.recover.fix": "Suggested fix",
|
|
15
|
+
"ui.recover.apply": "Fix now",
|
|
16
|
+
"ui.recover.confirm": "Restore from the latest backup?",
|
|
17
|
+
"ui.feedback.title": "Was this flow helpful?",
|
|
18
|
+
"ui.feedback.submit": "Send feedback",
|
|
19
|
+
"ui.faq.link": "FAQ / user guide",
|
|
20
|
+
"term.capability": "Capability",
|
|
21
|
+
"term.resolution": "Resolution",
|
|
22
|
+
"term.prd": "PRD = product requirements document",
|
|
23
|
+
"term.installed": "Skill installed on disk (skills/…/SKILL.md)",
|
|
24
|
+
"doctor.summary.registry": "Registry or matrix looks broken; you can restore from the latest backup.",
|
|
25
|
+
"doctor.summary.disabled": "A core skill is disabled; you can re-enable it.",
|
|
26
|
+
"doctor.summary.ok": "Project configuration looks healthy."
|
|
27
|
+
}
|
package/locales/tr.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"ui.subtitle": "Terminal yok — görevini yaz, planı gör, chat'e kopyala.",
|
|
3
|
+
"ui.step.project": "Proje",
|
|
4
|
+
"ui.step.task": "Görev",
|
|
5
|
+
"ui.step.plan": "Plan",
|
|
6
|
+
"ui.step.chat": "Chat",
|
|
7
|
+
"ui.health.check": "Kontrol et",
|
|
8
|
+
"ui.health.checking": "Kontrol ediliyor…",
|
|
9
|
+
"ui.health.ok": "✓ Doctor: OK",
|
|
10
|
+
"ui.health.fail": "✗ Doctor: sorun var",
|
|
11
|
+
"ui.tooltip.installed": "installed = skills/ klasöründe SKILL.md var. Cursor skill listesinde görünmesi gerekmez.",
|
|
12
|
+
"ui.plan.why": "Neden",
|
|
13
|
+
"ui.plan.technical": "Teknik detay",
|
|
14
|
+
"ui.recover.fix": "Önerilen düzeltme",
|
|
15
|
+
"ui.recover.apply": "Düzelt",
|
|
16
|
+
"ui.recover.confirm": "Son yedeği geri yüklemek istiyor musun?",
|
|
17
|
+
"ui.feedback.title": "Bu akış işine yaradı mı?",
|
|
18
|
+
"ui.feedback.submit": "Geri bildirim gönder",
|
|
19
|
+
"ui.faq.link": "SSS / kullanım kılavuzu",
|
|
20
|
+
"term.capability": "Capability",
|
|
21
|
+
"term.resolution": "Resolution",
|
|
22
|
+
"term.prd": "PRD = ürün gereksinim belgesi",
|
|
23
|
+
"term.installed": "Skill diskte yüklü (skills/…/SKILL.md)",
|
|
24
|
+
"doctor.summary.registry": "Registry veya matrix bozuk görünüyor; son yedekten geri yükleyebilirsin.",
|
|
25
|
+
"doctor.summary.disabled": "Bir core skill kapalı; yeniden açabilirsin.",
|
|
26
|
+
"doctor.summary.ok": "Proje yapılandırması sağlıklı görünüyor."
|
|
27
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bcelep/capint",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Capability-first orchestration engine for IDE agents",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"bin": {
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"skill-routing-matrix.json",
|
|
19
19
|
"registry.json",
|
|
20
20
|
"schemas/",
|
|
21
|
+
"locales/",
|
|
21
22
|
"ui/",
|
|
22
23
|
"README.md",
|
|
23
24
|
"CHANGELOG.md",
|
|
@@ -30,7 +31,8 @@
|
|
|
30
31
|
"test:unit": "node tests/contract-snapshot.test.mjs",
|
|
31
32
|
"test:e2e": "node tests/ui-wizard.e2e.mjs",
|
|
32
33
|
"validate": "node scripts/validate-matrix.mjs",
|
|
33
|
-
"release-check": "node scripts/release-check.mjs"
|
|
34
|
+
"release-check": "node scripts/release-check.mjs",
|
|
35
|
+
"skill-audit": "node bin/capint.js skill audit --json"
|
|
34
36
|
},
|
|
35
37
|
"devDependencies": {
|
|
36
38
|
"ajv": "^8.17.1",
|
|
@@ -8,7 +8,7 @@ description: "CapInt session start + Execution Intent — projected via capint i
|
|
|
8
8
|
|
|
9
9
|
Every **new conversation**, before editing files:
|
|
10
10
|
|
|
11
|
-
1. Read root `GUNLUK.md` (daily use) + `AGENT.md` + `design.md` (+ `HANDOFF.md` if present).
|
|
11
|
+
1. Read root `GUNLUK.md` (daily use) + `AGENT.md` + `design.md` (+ `HANDOFF.md` if present). Skim `DONE.md` if scope might repeat past work.
|
|
12
12
|
2. Read `skills/prismx-skill-gateway/SKILL.md` before medium+ code edits.
|
|
13
13
|
3. Keep startup output short (2–5 lines).
|
|
14
14
|
|
|
@@ -23,7 +23,7 @@ When the user assigns work:
|
|
|
23
23
|
- `Resolution: provider/resource`
|
|
24
24
|
- `Memory: none|optional|required`
|
|
25
25
|
- `Plan: auto|confirm|override`
|
|
26
|
-
3. **Explanation Card (medium+):** before apply, show up to 8 lines —
|
|
26
|
+
3. **Explanation Card (medium+):** before apply, show up to 8 lines — **`reason_plain` first** (business language), then technical `reason_summary`; task type, keywords, files to read (`explanation` block or `capint route --verbose`).
|
|
27
27
|
4. **Confirm (adaptive):** light → apply after Intent (`Plan: auto`); medium/heavy → one short Turkish question — accept devam/plan/analiz (tokens optional):
|
|
28
28
|
- devam / yap / evet → apply
|
|
29
29
|
- plan / planla / önce plan → short plan first
|
|
@@ -35,6 +35,18 @@ When the user assigns work:
|
|
|
35
35
|
# Paths
|
|
36
36
|
|
|
37
37
|
- Session: `AGENT.md`
|
|
38
|
+
- Active handoff: `HANDOFF.md` (if present)
|
|
39
|
+
- Completed log: `DONE.md` (append-only)
|
|
38
40
|
- Gateway: `skills/prismx-skill-gateway/SKILL.md`
|
|
39
41
|
- Matrix: `skill-routing-matrix.json`
|
|
40
42
|
- CLI preview: `capint route "<task>"`
|
|
43
|
+
|
|
44
|
+
# Session end
|
|
45
|
+
|
|
46
|
+
When the user closes a session (`kapan`, `oturumu bitir`, `HANDOFF güncelle`, `DONE kaydet`):
|
|
47
|
+
|
|
48
|
+
1. **Append** one row to `DONE.md` — date, short summary, verification (e.g. `npm test`, `capint doctor`).
|
|
49
|
+
2. **Rewrite** `HANDOFF.md` — where we left off, next 3 steps, blockers (active context only).
|
|
50
|
+
3. If code changed: note whether `npm test` / release-check was green.
|
|
51
|
+
4. Keep startup output short; do not duplicate full chat history in either file.
|
|
52
|
+
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://capint.dev/schemas/execution-intent.v1.json",
|
|
4
|
+
"title": "CapInt Execution Intent",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"intent",
|
|
8
|
+
"capability",
|
|
9
|
+
"resolution",
|
|
10
|
+
"memory",
|
|
11
|
+
"plan",
|
|
12
|
+
"confirm",
|
|
13
|
+
"confirm_question",
|
|
14
|
+
"confirm_options",
|
|
15
|
+
"confirm_default_option",
|
|
16
|
+
"fallback"
|
|
17
|
+
],
|
|
18
|
+
"properties": {
|
|
19
|
+
"intent": { "type": "string" },
|
|
20
|
+
"capability": { "type": "string" },
|
|
21
|
+
"resolution": { "type": "string" },
|
|
22
|
+
"memory": { "enum": ["none", "optional", "required"] },
|
|
23
|
+
"plan": { "enum": ["auto", "confirm", "override"] },
|
|
24
|
+
"confirm": {
|
|
25
|
+
"type": "object",
|
|
26
|
+
"properties": {
|
|
27
|
+
"enabled": { "type": "boolean" },
|
|
28
|
+
"mode": { "type": "string" },
|
|
29
|
+
"prompt": { "type": ["string", "null"] },
|
|
30
|
+
"options": { "type": "array" },
|
|
31
|
+
"default_option": { "type": ["string", "null"] }
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"confirm_question": { "type": ["string", "null"] },
|
|
35
|
+
"confirm_options": {
|
|
36
|
+
"type": "array",
|
|
37
|
+
"items": {
|
|
38
|
+
"type": "object",
|
|
39
|
+
"required": ["id", "label"],
|
|
40
|
+
"properties": {
|
|
41
|
+
"id": { "type": "string" },
|
|
42
|
+
"label": { "type": "string" }
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"confirm_default_option": { "type": ["string", "null"] },
|
|
47
|
+
"fallback": { "type": ["object", "null"] },
|
|
48
|
+
"verification_required": { "type": "boolean" },
|
|
49
|
+
"verification_hints": { "type": "array", "items": { "type": "string" } },
|
|
50
|
+
"verification_profile": { "type": "string" },
|
|
51
|
+
"route_explain": { "type": "object" },
|
|
52
|
+
"explanation": { "$ref": "explanation.v2.json" },
|
|
53
|
+
"provider_activation": { "type": ["object", "null"] },
|
|
54
|
+
"context_pack": { "type": ["object", "null"] },
|
|
55
|
+
"orchestration": { "type": ["object", "null"] },
|
|
56
|
+
"resolution_status": { "type": "string" },
|
|
57
|
+
"resolution_hint": { "type": "string" },
|
|
58
|
+
"workspace_boundary": {
|
|
59
|
+
"type": "object",
|
|
60
|
+
"properties": {
|
|
61
|
+
"violated": { "type": "boolean" },
|
|
62
|
+
"suspicious_paths": { "type": "array", "items": { "type": "string" } },
|
|
63
|
+
"override_hint": { "type": ["string", "null"] }
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"overlay_error": { "type": "string" },
|
|
67
|
+
"local_adapters": { "type": "object" }
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://capint.dev/schemas/explanation.v2.json",
|
|
4
|
+
"title": "CapInt Route Explanation v2",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"task_type_id",
|
|
8
|
+
"matched_keywords",
|
|
9
|
+
"winner",
|
|
10
|
+
"files_to_read",
|
|
11
|
+
"reason_summary",
|
|
12
|
+
"alternatives_considered"
|
|
13
|
+
],
|
|
14
|
+
"properties": {
|
|
15
|
+
"task_type_id": { "type": ["string", "null"] },
|
|
16
|
+
"matched_keywords": { "type": "array", "items": { "type": "string" } },
|
|
17
|
+
"winner": {
|
|
18
|
+
"type": ["object", "null"],
|
|
19
|
+
"properties": {
|
|
20
|
+
"type": { "type": "string" },
|
|
21
|
+
"resource": { "type": "string" }
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"files_to_read": { "type": "array", "items": { "type": "string" } },
|
|
25
|
+
"reason_summary": { "type": "string" },
|
|
26
|
+
"reason_plain": { "type": "string" },
|
|
27
|
+
"tooltip": { "type": "string" },
|
|
28
|
+
"locale": { "enum": ["tr", "en"] },
|
|
29
|
+
"alternatives_considered": {
|
|
30
|
+
"type": "array",
|
|
31
|
+
"items": {
|
|
32
|
+
"type": "object",
|
|
33
|
+
"properties": {
|
|
34
|
+
"resource": { "type": "string" },
|
|
35
|
+
"type": { "type": "string" },
|
|
36
|
+
"confidence": { "type": ["number", "null"] }
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"resolver_order": { "type": "array", "items": { "type": "string" } },
|
|
41
|
+
"files_intended": { "type": "array", "items": { "type": "string" } },
|
|
42
|
+
"workspace_boundary": {
|
|
43
|
+
"type": "object",
|
|
44
|
+
"properties": {
|
|
45
|
+
"violated": { "type": "boolean" },
|
|
46
|
+
"suspicious_paths": { "type": "array", "items": { "type": "string" } },
|
|
47
|
+
"override_hint": { "type": ["string", "null"] }
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|