feed-the-machine 1.7.3 → 1.7.5
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.
|
@@ -179,16 +179,70 @@ Ask the user only when one of these is true:
|
|
|
179
179
|
|
|
180
180
|
- two materially different interpretations are both plausible
|
|
181
181
|
- an external-facing action needs approval
|
|
182
|
-
- a required credential, path, or identifier is missing
|
|
182
|
+
- a required credential, path, or identifier is missing **AND the blackboard has no experience confirming access** (see Blackboard-First Rule below)
|
|
183
183
|
- the user explicitly asked for options before action
|
|
184
|
-
- **the task is medium+ and involves external systems, stakeholder coordination, or unfamiliar code** (see Discovery Interview below)
|
|
184
|
+
- **the task is medium+ and involves external systems, stakeholder coordination, or unfamiliar code** (see Discovery Interview below) **AND the blackboard doesn't already confirm repo-level access**
|
|
185
185
|
|
|
186
186
|
When asking, ask one focused question with concrete choices.
|
|
187
187
|
|
|
188
|
+
### Blackboard-First Rule (MANDATORY before any access/auth questions)
|
|
189
|
+
|
|
190
|
+
**Before asking ANY question about credentials, API access, authorization, permissions, or "do you have access to X" — check the blackboard first.**
|
|
191
|
+
|
|
192
|
+
1. Read `experiences/index.json`
|
|
193
|
+
2. Look for entries tagged with the current repo name, `api-access`, `full-access`, `credentials`, or the system being asked about (e.g., `freshservice`, `okta`, `jira`)
|
|
194
|
+
3. If a matching experience exists with `confidence >= 0.7`:
|
|
195
|
+
- **Do NOT ask about access.** The user already established this.
|
|
196
|
+
- **Do NOT run a discovery interview about authorization.** You have the answer.
|
|
197
|
+
- **Just do the thing.** If the credentials don't work, you'll find out when the API call fails — and that's a better signal than a speculative question.
|
|
198
|
+
4. If no matching experience exists, proceed with asking.
|
|
199
|
+
|
|
200
|
+
This rule exists because users set up repo-level context once (e.g., "ragnarok has full Okta/Freshservice/Jira API access") and expect Claude to remember it across every session. Asking "do you have admin access?" when the blackboard already says "yes, full access" is the #1 frustration signal.
|
|
201
|
+
|
|
202
|
+
### Access Declaration Detection (MANDATORY)
|
|
203
|
+
|
|
204
|
+
When a user declares repo-level access — either explicitly or as part of a task — **immediately write a blackboard experience so it persists across sessions.** Do NOT wait until the task is complete. Write it during Orient, before acting.
|
|
205
|
+
|
|
206
|
+
**Detection triggers** (any of these in the user's message):
|
|
207
|
+
- "I have access to...", "I have credentials for...", "I'm authenticated to..."
|
|
208
|
+
- "this repo has access to...", "we have API keys for..."
|
|
209
|
+
- "just do it, I have the creds", "you have access here", "credentials are configured"
|
|
210
|
+
- "I'm in [repo name] with my credentials"
|
|
211
|
+
- The user tells you to stop asking and just use an API
|
|
212
|
+
- An API call succeeds for the first time in a repo where no access experience exists
|
|
213
|
+
|
|
214
|
+
**What to write** — create an experience file at `~/.claude/ftm-state/blackboard/experiences/learning-{repo-name}-api-access.json`:
|
|
215
|
+
|
|
216
|
+
```json
|
|
217
|
+
{
|
|
218
|
+
"id": "learning-{repo-name}-api-access",
|
|
219
|
+
"timestamp": "{ISO 8601 now}",
|
|
220
|
+
"task_type": "environment-knowledge",
|
|
221
|
+
"tags": ["{repo-name}", "api-access", "environment", "learning"],
|
|
222
|
+
"outcome": "success",
|
|
223
|
+
"description": "User confirmed API access in {repo-name} repo. {any specifics they mentioned — which systems, what kind of access}.",
|
|
224
|
+
"lessons": [
|
|
225
|
+
"{repo-name} repo has configured access to {systems mentioned}",
|
|
226
|
+
"Do not ask about credentials or authorization when working in this repo — just act"
|
|
227
|
+
],
|
|
228
|
+
"confidence": 1.0,
|
|
229
|
+
"code_patterns": [],
|
|
230
|
+
"api_gotchas": []
|
|
231
|
+
}
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
Also update `experiences/index.json` with the new entry.
|
|
235
|
+
|
|
236
|
+
**On first successful API call:** If you make an API call in a repo and it succeeds, but no access experience exists for this repo, write one automatically. The success IS the proof of access. Tag it with the repo name and the system that worked (e.g., `freshservice`, `okta`).
|
|
237
|
+
|
|
238
|
+
**This is not optional.** Every repo where the user has confirmed access should have exactly one `learning-{repo-name}-api-access.json` experience. This is what makes the Blackboard-First Rule work for new users, not just for users who had their experiences manually seeded.
|
|
239
|
+
|
|
188
240
|
### Discovery Interview (medium+ tasks with external systems)
|
|
189
241
|
|
|
190
242
|
When a task hits forced-medium or higher AND involves external systems, stakeholder coordination, or code you haven't read yet this session, run a brief discovery interview BEFORE generating the plan. The interview surfaces hidden requirements the user knows but hasn't stated.
|
|
191
243
|
|
|
244
|
+
**Before running the interview, apply the Blackboard-First Rule above.** If the blackboard confirms access and the task is a straightforward API operation (add user, create ticket, update group), skip the interview entirely and just do it. The interview is for tasks with genuine unknowns — stakeholder coordination, multi-system migrations, policy changes — not for "use the Freshservice API to add an agent."
|
|
245
|
+
|
|
192
246
|
The interview should be 2-4 focused questions:
|
|
193
247
|
|
|
194
248
|
- Who else needs to know about this change?
|
|
@@ -201,6 +255,7 @@ The interview should be 2-4 focused questions:
|
|
|
201
255
|
- The user already provided comprehensive context
|
|
202
256
|
- The task is purely local with no external dependencies
|
|
203
257
|
- The user explicitly says "just do it" or "no questions, go"
|
|
258
|
+
- **The blackboard has an experience confirming API access for this repo + the task is a direct API operation** (not stakeholder coordination or multi-system migration)
|
|
204
259
|
|
|
205
260
|
## Brain.py Task Loading (Observe Phase)
|
|
206
261
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "feed-the-machine",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.5",
|
|
4
4
|
"description": "A brain upgrade for Claude Code — 26 skills that teach it how to think before acting, remember across conversations, debug like a war room, run plans on autopilot with agent teams, and get second opinions from GPT & Gemini. Plus 15 hooks that automate the boring stuff.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "kkudumu",
|