SKILL.md below into your project and
your agent will recognize when a conversation has produced something worth
keeping — a decision, a pattern, a runbook, a postmortem — and offer to write
it up and ingest it, instead of letting it disappear at the end of the
session.
This is a skill for an agent, not a person. It assumes
engframe is
installed and you’ve already run engframe login at least once — see
engframe CLI: Install & Use if you haven’t. The skill
itself tells the agent to check for this and prompt you if it’s missing,
rather than assuming it silently.What this skill does
Once installed, an agent with this skill will:- Recognize moments worth persisting — the user asking to “save this”, “write this up”, “add this to the knowledge base”, or the agent itself noticing a conclusion, decision, or workaround from the current session that’s worth keeping for next time.
- Check that
engframeis installed and the user is logged in before doing anything else. - Write a Markdown file with the correct YAML front matter (title, type,
tags, domains, project, etc.) and run
engframe ingeston it. - Tell you plainly that the result is a draft — not yet visible in search — and that it needs a reviewer to approve it, rather than implying the content is immediately live.
- Surface the actual error if ingestion fails, instead of retrying silently or inventing a workaround.
Install it
Create.claude/skills/knowledge-base-ingest/SKILL.md in your project (or
your user-level ~/.claude/skills/ directory to make it available
everywhere) and paste in the content below.
- If the command isn’t found, tell the user to install it with
npm install -g @engineeringframework/cliand stop. - If it reports the session isn’t logged in (or has expired), tell the user
to run
engframe loginand stop. Don’t attempt to work around a missing login.
Write the file
Draft a Markdown file with YAML front matter, then the content as the body. Use a temporary path (e.g..claude/tmp/kb-<short-slug>.md) unless the user
asks for it to be kept.
Required front matter fields:
title— a specific, descriptive title.type— one ofconcept,decision,guide,pitfall,process. Pick the one that matches what you’re recording; ask the user if it’s genuinely ambiguous.
tags— free-form keywords for filtering.domains— subject areas this belongs to (e.g.payments,auth).projectId— if this is specific to one project the user belongs to.appliesTo— scope of applicability, if narrower than the domain/project implies.sources— links to PRs, tickets, or docs that back this up.edges—part_of/relates_tolinks to other Document IDs, only if you already know them and are authorized to view them.
Ingest it
engframe prints the new Document’s ID and status
(status: draft). Tell the user:
- The Document was created as a draft.
- It is not yet visible in Knowledge Base search — a reviewer for its domain needs to approve it first.
- Where to check on it later (the Review Queue in the dashboard), if they ask.
If ingestion fails
engframe prints the specific problem (unknown project, unknown domain, an
edges link to a Document you’re not authorized to see, not logged in,
etc.). Show the user that actual error message. Don’t:
- Retry the same command hoping it works.
- Silently drop the field that caused the failure and re-ingest without telling the user.
- Guess at a project or domain ID that wasn’t provided.