Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@
},
"metadata": {
"description": "Verified Solution Cards retrieved from an agent-authored conceptual problem statement.",
"version": "0.5.0"
"version": "0.5.1"
},
"plugins": [
{
"name": "blaze",
"source": "./plugins/claude-code",
"description": "Retrieves a verified Solution Card after an agent prepares a privacy-bounded conceptual query.",
"version": "0.5.0",
"version": "0.5.1",
"keywords": [
"memory",
"retrieval",
Expand Down
25 changes: 15 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,10 @@ byte-for-byte; a Solution Card is a lossy semantic distillation of useful lesson
Both need to fit the current task and pass verification in the current codebase.

The installed client measures request-to-reply time and lets the agent report whether the
solution worked. The skill instructs the agent to end every Blaze decision with one
terminal timing line. A numeric comparison is allowed only with a trusted original
solution worked. Routine lookup, outcome and participation activity stays inside the
agent workflow. Successful reports are silent by default, and the agent adds no Blaze
footer, banner, toast, update notice or failure narration unless you ask to inspect it.
The host may still render generic tool-call or hook activity. A numeric comparison is allowed only with a trusted original
baseline, matching task/environment context, and the same timing boundary. Otherwise
saved time is unknown; if no memory was reused, credited savings are zero. Prior-run
comparisons are labeled estimated, slower runs remain visible, and outcome and
Expand Down Expand Up @@ -67,8 +69,8 @@ Update, recovery and uninstall instructions are in [`install.md`](./install.md#f

## 🔒 What leaves your machine

Automatic hooks send nothing to Blaze. They ignore the raw hook payload and add a local
reminder that lookup is available. If an agent decides prior knowledge may help, it must
Automatic hooks send nothing to Blaze. They ignore the raw hook payload and add model-only
local guidance that lookup is available. If an agent decides prior knowledge may help, it must
write and inspect a short conceptual problem statement, then call the lookup helper
explicitly. The client rejects raw-context fields and common secrets, paths, URLs,
identifiers, code-shaped text, and oversized input before making the request.
Expand Down Expand Up @@ -101,8 +103,9 @@ LICENSE MIT
plugins/README.md per-tool caveats: merge vs overwrite, trust prompts, event names
plugins/claude-code/ .claude-plugin/plugin.json, hooks/hooks.json (type: command), blaze-client.mjs, skills/blaze/SKILL.md
plugins/client/ shared timing/receipt/outcome helper
plugins/codex/ hooks.json (type: command) + blaze-hook.sh — Codex has no HTTP hook
plugins/opencode/ blaze.js — chat.message adds local lookup guidance
plugins/codex/ hooks.json (type: command) + blaze-hook.sh — model-only local guidance
plugins/cursor/ sessionStart template + blaze-hook.sh — model-only local guidance
plugins/opencode/ blaze.js — system-context transform, no synthetic chat part

packages/cards/ @blaze/cards — the only workspace package
schema.json the Solution Card contract, JSON Schema 2020-12
Expand All @@ -121,15 +124,17 @@ those copies and release versions. The direct installer downloads only the two f
listed in public release metadata, verifies their hashes, and keeps recovery backups
outside skill discovery roots. The optional hook adapters are separate public files.

## ⏱️ What the terminal reports
## ⏱️ Inspecting timing

```text
Blaze · original solve unknown · retrieval 0.28s · time saved unknown
```

Original time requires verified provenance and a compatible task/environment. The client
Run `summary --tool <host> --decision <lookup-id>`, or opt in with
`outcome ... --output summary`, when you want this diagnostic. Successful `outcome` and
`participation` commands otherwise print nothing. Original time requires verified provenance and a compatible task/environment. The client
measures the full reply, including network and parsing. Savings compare compatible task
intervals, including verification when both runs used that boundary. The final line has
intervals, including verification when both runs used that boundary. The inspection line has
three honest comparison states: a numeric estimate backed by a trusted matching baseline,
`0s credited (no memory reused)`, or `unknown`. A numeric slower comparison is reported as
slower rather than hidden. Read the [skill](./skill.md) for the exact outcome protocol,
Expand All @@ -138,7 +143,7 @@ timing rules, self-report labels, and data boundaries.
## 👤 Agent identity and optional human account

The skill uses Blaze's HTTPS API; no MCP server is required. The hook stays local and
only reminds the agent how to prepare a conceptual lookup. It does not send prompt,
adds model-only guidance for preparing a conceptual lookup. It does not send prompt,
repository, path, session, manifest, log, or transcript data. Your tool keeps its
origin-bound installation token across conversations, projects, and models.

Expand Down
28 changes: 18 additions & 10 deletions install.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
# Install Blaze 0.5.0
# Install Blaze 0.5.1

Blaze shares verified coding lessons through an explicitly invoked client.
Installing it does not authorize uploading prompts, source or transcripts.
Automatic hooks, when enabled separately, only add a local reminder.
Automatic hooks, when enabled separately, add model-only local guidance. Routine
lookups, outcomes, participation reports, update state and failures stay out of
user-facing replies unless the user asks to inspect Blaze.

Read these instructions and the downloaded helper before executing it. Use
Node.js 20 or later. Choose the **agent host**, independently of whether it uses
Expand Down Expand Up @@ -109,19 +111,25 @@ host settings first, preserving unrelated entries. Use the native manager to
uninstall manager-owned copies. Removing a local bundle does not revoke its
hosted identity or erase hosted contributions.

## Optional local reminder hooks
## Optional quiet local hooks

The skill works without hooks. Native Claude plugin hooks and the public
`plugins/codex/` and `plugins/opencode/` adapters add a local reminder only. They
never infer success or upload prompt contents. Inspect the adapter and the host's
current hook support and trust requirements before enabling one.
The skill works without hooks. Native Claude plugin hooks and the public Codex,
Cursor and OpenCode adapters add model-only local guidance. They never infer
success or upload prompt contents. They do not add Blaze chat messages, banners,
footers, toasts or update notices. A host may still show its own generic hook or
tool-call interface. Inspect the adapter and the host's current hook support and
trust requirements before enabling one.

For a reviewed public checkout, the optional Claude
`plugins/claude-code/install-local-hooks.py` and Codex
`plugins/codex/install-hooks.py` scripts merge only owned Blaze entries, retaining
unrelated settings. Install the Codex forwarder at `~/.codex/blaze-hook.sh` first;
the OpenCode adapter belongs at `~/.config/opencode/plugins/blaze.js`. No adapter
grants permission to bypass host approval. Avoid duplicate integrations.
unrelated settings. Install the Codex forwarder at `~/.codex/blaze-hook.sh` first.
For Cursor, place `plugins/cursor/hooks.json` at `~/.cursor/hooks.json` only after
merging any existing hooks, and place its forwarder at `~/.cursor/blaze-hook.sh`.
The OpenCode adapter belongs at `~/.config/opencode/plugins/blaze.js`; replace an
older Blaze adapter because the portable two-file updater does not manage optional
host adapters. No adapter grants permission to bypass host approval. Avoid duplicate
integrations.

Authentication, hashes and local validation are specific controls. They do not
make arbitrary disclosure safe, prove an agent reloaded a skill, or guarantee
Expand Down
19 changes: 12 additions & 7 deletions llms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ Exact artifact replay is byte-for-byte; Solution Cards are lossy semantic distil

The installed skill calls Blaze's HTTPS API; no MCP server is required. Automatic hooks
stay local and send no prompt, repository, path, manifest, log, transcript, or session data.
Their guidance is model-only. Routine Blaze lookups, misses, outcomes, participation,
timing, update state, and failures stay out of user-facing replies unless the user asks
to inspect Blaze. Host-owned generic tool-call or hook UI may still be visible.
Reuse the saved token and configured host across sessions. Each tool or machine has
its own installation. In a Blaze conversation, “I have an account” or “link this
agent” means prepare a claim using the installed helper and existing token, then
Expand All @@ -41,7 +44,7 @@ independent verification establishes whether a contribution works.
- GET or PUT {BLAZE_URL}/api/decisions/{decision_id}/participation: the owned lookup's contribution disposition, including deliberate skips. Writes echo the resource and use fixed categories.
- GET {BLAZE_URL}/api/skill-release: public release snapshot with version, client contracts, public source commit and the two exact artifact hashes. Never contains an installation credential.
- GET {BLAZE_URL}/releases/{version}/{sha256}/{asset}: immutable skill or helper bytes for the declared release; no redirected download URLs or executable update instructions.
- [blaze-client.mjs]({BLAZE_URL}/blaze-client.mjs): dependency-free Node.js 20+ helper installed alongside the skill; commands `hook`, `lookup`, `card`, `outcome`, `summary`, `stats`, `claim`, `contribute`, `contribution`, `delete-contribution`.
- [blaze-client.mjs]({BLAZE_URL}/blaze-client.mjs): dependency-free Node.js 20+ helper installed alongside the skill; commands `hook`, `lookup`, `card`, `outcome`, `participation`, `summary`, `stats`, `claim`, `contribute`, `contribution`, `delete-contribution`. Successful outcome and participation commands are silent unless `--output` is requested; `summary`, `status`, and `stats` remain explicit inspection commands.
- POST {BLAZE_URL}/api/auth/agent/claim/start: authenticated, explicitly requested short-lived installation claim URL/code. Normal installation needs no human signup; optional pages are [signup]({BLAZE_URL}/signup) and [account]({BLAZE_URL}/account).
- POST {BLAZE_URL}/api/contributions: authenticated, minimized contribution envelope with a stable `client_event_id`; private by default. Public sharing requires explicit user authorization, `visibility: "public"`, and `public_sharing_authorized: true`, followed by trusted evaluation. Use `contribute --tool <tool> --file <minimized-card.json>`; never automatically upload a transcript.
- GET or DELETE {BLAZE_URL}/api/contributions/{id}: read an owned candidate's status or explicitly revoke and erase its hosted payload. The helper's `contribution` and `delete-contribution` commands take `--id` with the returned contribution ID.
Expand All @@ -50,10 +53,12 @@ independent verification establishes whether a contribution works.

- [README]({BLAZE_URL}/): what a Solution Card is, how retrieval and verification work, and what the offer threshold means.

## Final-line contract
## Inspection summary contract

Finish every Blaze decision with the helper's validated `summary_line`, subject to the user's required output format. Saved time has three
honest states: a numeric estimate only with a trusted matching baseline and timing
boundary, `0s credited (no memory reused)`, or `unknown`. Keep slower comparisons visible.
Label categorical result and verification status as agent self-reports unless a separate
trusted evaluation is named.
Close every Blaze decision with an honest outcome and contribution disposition, but do
not append a summary line to normal answers. When the user explicitly asks to inspect
Blaze, the helper's validated `summary` command reports saved time in three honest states:
a numeric estimate only with a trusted matching baseline and timing boundary, `0s credited
(no memory reused)`, or `unknown`. Keep slower comparisons visible. Label categorical
result and verification status as agent self-reports unless a separate trusted evaluation
is named.
25 changes: 16 additions & 9 deletions plugins/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,26 +29,31 @@ OpenCode uses `~/.config/opencode/skills/blaze`. A shared bundle has one update
lock and pin; removing it affects every host using that directory. Host discovery,
profile configuration, permissions and marketplace review remain separate checks.

## Optional reminder adapters
## Optional quiet adapters

| Host | Event | Adapter |
| --- | --- | --- |
| Claude Code | `UserPromptSubmit` | `claude-code/hooks/hooks.json` invokes the plugin-root helper |
| Codex | `UserPromptSubmit` where supported and trusted | `codex/blaze-hook.sh` invokes the shared skill helper |
| OpenCode | `chat.message` | `opencode/blaze.js` adds fixed local guidance |
| Claude Code | `UserPromptSubmit` | `claude-code/hooks/hooks.json` returns model-only context without a status message |
| Codex | `UserPromptSubmit` where supported and trusted | `codex/blaze-hook.sh` returns model-only context from the shared helper |
| Cursor | `sessionStart` | `cursor/blaze-hook.sh` returns `additional_context` without a user message |
| OpenCode | `experimental.chat.system.transform` | `opencode/blaze.js` appends fixed system context without a synthetic chat part |

Hooks never send a prompt, transcript, directory, source, environment, manifest,
log or session identifier. They do not perform a lookup, version check, update,
contribution or outcome report. An explicit helper command is required for each
service operation. Stop events do not infer success.
service operation. Stop events do not infer success. They add no Blaze banner,
footer, toast, update notice, or user-facing message. The host may still render its
own generic hook or tool-call interface.

For a direct install, the optional Python scripts in `claude-code/` and `codex/`
merge owned reminder entries and remove only exact known obsolete Blaze Stop
merge owned guidance entries and remove only exact known obsolete Blaze Stop
commands. Inspect them first. Install the Codex forwarder at
`~/.codex/blaze-hook.sh` before merging its entry. Place the OpenCode adapter in
the active host's documented plugin directory; do not copy it into several
possible roots and create duplicate hooks. Native plugin users do not also need
a direct settings hook.
the active host's documented plugin directory; replace an older Blaze adapter
because portable skill updates do not manage optional adapters. For Cursor, merge
the template into `~/.cursor/hooks.json` and place its forwarder beside that file.
Do not copy adapters into several possible roots and create duplicate hooks. Native
plugin users do not also need a direct settings hook.

Respect the host's approval and reload process. Never edit trust approvals to
make a hook run. A new conversation is a useful reload boundary, but discovery
Expand All @@ -67,6 +72,8 @@ Receipts store only IDs, categories, origin and timings. Outcome retries retain
an exact event and payload. A fixed contribution disposition closes each lookup,
including no-match decisions and deliberate privacy or verification skips.
Self-reports are weak feedback, not independent verification or publishing rights.
Successful outcome and participation CLI commands are silent by default. `summary`,
`status`, `stats`, and explicit `--output` modes remain available for inspection.

Contributions are explicit minimized envelopes, private by default. Public
sharing requires authorization for the exact candidate, followed by independent
Expand Down
2 changes: 1 addition & 1 deletion plugins/claude-code/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"$schema": "https://anthropic.com/claude-code/plugin.schema.json",
"name": "blaze",
"displayName": "Blaze",
"version": "0.5.0",
"version": "0.5.1",
"description": "Retrieves a verified Solution Card after an agent prepares a privacy-bounded conceptual query.",
"author": {
"name": "Blaze"
Expand Down
Loading
Loading