diff --git a/registry/deep-research/index.html b/registry/deep-research/index.html index 8c29576..f8132e4 100644 --- a/registry/deep-research/index.html +++ b/registry/deep-research/index.html @@ -642,7 +642,7 @@

deep_research is an agent-runtime-agnostic workflow that turns an empirical research question into a citation-grade synthesis. Two human-in-the-loop gates (protocol pre-registration, Pass-2 spend) bracket a four-role subagent crew (Scout / Skeptic / Methodologist / Synthesizer). Every claim a synthesis ships must be backed by a row in the research_evidence table with a verbatim quote_span; claims without their quote get cut. v0.2.0 adds the Python reference implementation: a stdlib-urllib scholar adapter (OpenAlex / Semantic Scholar / PubMed / arXiv / Europe PMC / Crossref / Unpaywall) and a python-docx + matplotlib synthesis builder with pluggable upload. Core stays stdlib-only; the docx builder is gated behind the optional `[viz]` extra.

Tags: researchliterature-reviewmeta-analysisagentssubagent-fan-outno-fabricationskill-bundle

License: Apache-2.0

-

Last fetched 2026-06-18T09:09:15Z (live)

+

Last fetched 2026-06-19T10:17:09Z (live)

diff --git a/registry/gmail-example/index.html b/registry/gmail-example/index.html index ef97b74..a32d9c8 100644 --- a/registry/gmail-example/index.html +++ b/registry/gmail-example/index.html @@ -623,7 +623,7 @@

spec · yepgent

-

Pages generated 2026-06-18T09:09:15Z · manifests.json · changelog.json

+

Pages generated 2026-06-19T10:17:09Z · manifests.json · changelog.json

diff --git a/registry/gmail-v0.2-example/index.html b/registry/gmail-v0.2-example/index.html index 2d237af..d92e268 100644 --- a/registry/gmail-v0.2-example/index.html +++ b/registry/gmail-v0.2-example/index.html @@ -707,7 +707,7 @@

spec · yepgent

-

Pages generated 2026-06-18T09:09:15Z · manifests.json · changelog.json

+

Pages generated 2026-06-19T10:17:09Z · manifests.json · changelog.json

diff --git a/registry/gmail-v0.3-example/index.html b/registry/gmail-v0.3-example/index.html index 12a4483..1d1bb43 100644 --- a/registry/gmail-v0.3-example/index.html +++ b/registry/gmail-v0.3-example/index.html @@ -710,7 +710,7 @@

spec · yepgent

-

Pages generated 2026-06-18T09:09:15Z · manifests.json · changelog.json

+

Pages generated 2026-06-19T10:17:09Z · manifests.json · changelog.json

diff --git a/registry/index.html b/registry/index.html index aa2c20f..e279a89 100644 --- a/registry/index.html +++ b/registry/index.html @@ -851,7 +851,7 @@

Muninn zeitgeist_delta

spec · yepgent

-

Pages generated 2026-06-18T09:09:15Z · manifests.json · changelog.json

+

Pages generated 2026-06-19T10:17:09Z · manifests.json · changelog.json

diff --git a/registry/muninn-blog-publish/index.html b/registry/muninn-blog-publish/index.html index edb3315..58b6ccc 100644 --- a/registry/muninn-blog-publish/index.html +++ b/registry/muninn-blog-publish/index.html @@ -652,7 +652,7 @@

Encoded as a flowing graph: page-commit → wait-for-deploy → (when feed_entry given) feed-update; bsky-announce + engagement-link-commit run as detached side-effects. Caller gets the page URL the moment GH Pages serves it; bsky failures land in `flow.detached_failures` and never bubble up as publish failures. The 300-grapheme bsky cap is enforced as a `validate=` gate BEFORE any createRecord call. Same primary credential as `perch_publish` (GH_TOKEN), same secondary credentials as `bsky_card` (MUNINN_BSKY_HANDLE, MUNINN_BSKY_APP_PASSWORD) — third publishing target after perch_publish and (planned) whtwnd. Issue #5 calls this out as the test for whether v0.4 `writes[]` generalises across multiple publishing surfaces in the same agent.

Tags: publishinggithub-pagesatom-feedblogblueskyflowing

License: MIT

-

Last fetched 2026-06-18T09:09:16Z (live)

+

Last fetched 2026-06-19T10:17:09Z (live)

diff --git a/registry/muninn-bsky-card/index.html b/registry/muninn-bsky-card/index.html index dd798f2..ba4b3e8 100644 --- a/registry/muninn-bsky-card/index.html +++ b/registry/muninn-bsky-card/index.html @@ -637,7 +637,7 @@

Library that an orchestrating agent calls to share a URL on Bluesky with a proper link card. Workflow: fetch the target URL, extract Open Graph tags, upload the card thumbnail as a blob to the user's PDS, compose UTF-8 facets for any inline links, and create the post via com.atproto.repo.createRecord. Auth is a Bluesky app password (created at bsky.app/settings/app-passwords); the password grants write access to everything except DMs and account deletion. The tool itself stores nothing; ephemeral session JWTs live only in the calling process's memory. First in the consumer-test series for install-manifest-spec v0.3 — see the muninns-inbox discussion #1 thread for the findings the writeup surfaced. Manifest moved here (from muninns-inbox/manifests/) per issue #5 — the round-1 venue mistake. Auth is supplied by the caller as an `auth` dict (`handle`, `did`, `access_jwt`); this utility reads no BSKY_* env vars directly.

Tags: blueskyatprotosocialpostinglink-card

License: MIT

-

Last fetched 2026-06-18T09:09:16Z (live)

+

Last fetched 2026-06-19T10:17:09Z (live)

diff --git a/registry/muninn-bsky-limit/index.html b/registry/muninn-bsky-limit/index.html index 0b2769a..f4c8f56 100644 --- a/registry/muninn-bsky-limit/index.html +++ b/registry/muninn-bsky-limit/index.html @@ -587,7 +587,7 @@

Two-function helper used by anything that posts to Bluesky. fits(text, limit=300) returns whether the text fits the AppView's grapheme cap; truncate(text, limit=300, suffix='…') walks back to the last whitespace under the cap and appends the suffix. Pure compute: no I/O, no environment, no state. Depends on the `grapheme` PyPI package, which the module pip-installs at import time if missing (the only side-effect surface). Manifested here as the shared-credential / shared-dependency reuse case for Bluesky utilities (bsky_card, blog_publish, whtwnd) and as the v0.3-spec stress-test of 'a tool whose only declarable scope is compute.local'.

Tags: blueskyatprotographemetext-utilitylength-check

License: MIT

-

Last fetched 2026-06-18T09:09:16Z (live)

+

Last fetched 2026-06-19T10:17:09Z (live)

diff --git a/registry/muninn-flowing/index.html b/registry/muninn-flowing/index.html index 28ca739..38f5875 100644 --- a/registry/muninn-flowing/index.html +++ b/registry/muninn-flowing/index.html @@ -602,7 +602,7 @@

spec · yepgent

-

Pages generated 2026-06-18T09:09:15Z · manifests.json · changelog.json

+

Pages generated 2026-06-19T10:17:09Z · manifests.json · changelog.json

diff --git a/registry/muninn-issue-close/index.html b/registry/muninn-issue-close/index.html index 8571434..6e8e80c 100644 --- a/registry/muninn-issue-close/index.html +++ b/registry/muninn-issue-close/index.html @@ -636,7 +636,7 @@

Two-artifact close: GitHub issue gets the implementation log (the closing comment), Muninn's memory store gets the behavioral learning (the decision memory). Wraps a `flowing` graph so synthesis-text validation runs BEFORE any GitHub call fires, the close-issue ack is the terminal node (returns immediately on 2xx), and the memory-store + optional pending-test-verification run as detached side-effects whose failure populates `flow.detached_failures` rather than bubbling up. Same shape as `perch_publish` (single primary credential, structured comment) but writes to a different surface (issues, not pages) and with a paired Turso write per close. Issue #5 calls this out as the credential-reuse-with-perch_publish test.

Tags: githubissuesdecision-memorylearning-synthesisflowing

License: MIT

-

Last fetched 2026-06-18T09:09:16Z (live)

+

Last fetched 2026-06-19T10:17:10Z (live)

diff --git a/registry/muninn-memory-tfidf/index.html b/registry/muninn-memory-tfidf/index.html index 571ed5f..9f4573b 100644 --- a/registry/muninn-memory-tfidf/index.html +++ b/registry/muninn-memory-tfidf/index.html @@ -606,7 +606,7 @@

Loads all memory summaries from Turso once, builds a sklearn TfidfVectorizer + cosine-similarity matrix, and exposes four read-only queries: duplicates() (pairs above a similarity threshold), similar(id) (top-N for a given memory), clusters() (connected components above threshold), outliers() (memories with low max-similarity to anything else). Build is in-memory and ephemeral; nothing persists between calls in the tool's own storage. Authored as the deliberate **minimum-honest-manifest** consumer test for install-manifest-spec v0.3 — every required field is present, nothing optional is added past what the tool actually does.

Tags: tf-idfsimilarityclusteringmemoryread-only

License: MIT

-

Last fetched 2026-06-18T09:09:16Z (live)

+

Last fetched 2026-06-19T10:17:10Z (live)

diff --git a/registry/muninn-news-watch/index.html b/registry/muninn-news-watch/index.html index 3cbb763..1505653 100644 --- a/registry/muninn-news-watch/index.html +++ b/registry/muninn-news-watch/index.html @@ -666,7 +666,7 @@

Five functions: parse_claude_blog(content) extracts post links, dates and categories from rendered blog-index content; filter_new(posts, last_seen) returns posts strictly newer than the watermark; get_last_seen/set_last_seen read and write a single ISO date in Turso config (key 'claude-blog-last-seen-iso', category 'ops'); format_for_report(new_posts) renders HTML <li> rows for the perch report. First run (last_seen is None) returns no new posts so the seed run doesn't alert on already-historical content; the watermark advances even when no new posts are found to avoid re-scanning the same back-window. The tool itself does NOT make outbound HTTP fetches against claude.com — that's the caller's web_fetch (claude.com 403s raw HTTP from container egress); the tool only parses content the caller already fetched and reads/writes the watermark in Turso.

Tags: newswatermarkclaude-blogparsingperch

License: MIT

-

Last fetched 2026-06-18T09:09:16Z (live)

+

Last fetched 2026-06-19T10:17:10Z (live)

diff --git a/registry/muninn-perch-publish/index.html b/registry/muninn-perch-publish/index.html index 8177b57..2b0107f 100644 --- a/registry/muninn-perch-publish/index.html +++ b/registry/muninn-perch-publish/index.html @@ -622,7 +622,7 @@

Fetches a discussion via the GitHub GraphQL API, converts the markdown body to HTML, slugifies the title, and commits three files in one batch (the rendered page under perch/, the regenerated index.html, the regenerated feed.xml). Reads existing entries from the live site to merge the new one into the index/feed without re-fetching every prior discussion. Same primary credential as `blog_publish` and `issue_close` (GH_TOKEN), and the GH_TOKEN must have access to BOTH oaustegard/claude-skills (read discussions) and oaustegard/muninn.austegard.com (write commits).

Tags: publishinggithub-pagesatom-feedperchdiscussions

License: MIT

-

Last fetched 2026-06-18T09:09:16Z (live)

+

Last fetched 2026-06-19T10:17:10Z (live)

diff --git a/registry/muninn-perch-triage/index.html b/registry/muninn-perch-triage/index.html index 588b619..65d168a 100644 --- a/registry/muninn-perch-triage/index.html +++ b/registry/muninn-perch-triage/index.html @@ -651,7 +651,7 @@

Two operating modes. **Recommendation-only** (auto_close=false): reads open Flight Log discussions on oaustegard/claude-skills, classifies each by primary reaction (priority order: ROCKET > HEART > CONFUSED > EYES > HOORAY > THUMBS_DOWN > THUMBS_UP > LAUGH), groups them into action buckets, and returns the report. Pure read; no GitHub writes, no memory writes. **Auto-close** (auto_close=true, default): for THUMBS_UP / LAUGH reactions only, additionally writes a `world`-typed memory summarising the log, then closes the GH discussion with a comment referencing the memory id. Issue #5 calls this out as the test for a tool that produces a recommendation rather than a change — the recommendation-only mode is read-only with no writes; the auto-close mode is write-and-destructive on a narrow reaction set.

Tags: githubdiscussionstriageflight-logsreactions

License: MIT

-

Last fetched 2026-06-18T09:09:16Z (live)

+

Last fetched 2026-06-19T10:17:10Z (live)

diff --git a/registry/muninn-remind/index.html b/registry/muninn-remind/index.html index 83e2159..832577d 100644 --- a/registry/muninn-remind/index.html +++ b/registry/muninn-remind/index.html @@ -681,7 +681,7 @@

Six operations: remind, remind_done, remind_snooze, remind_due, remind_list, remind_sweep. Each reminder is a `procedure`-typed memory tagged `remind`, `remind-active`, and `remind-<kind>`. The reminder's due time is encoded in the memory's `valid_from` field; recurring reminders update `valid_from` forward when completed; nag-kind reminders re-surface every boot until done; notice-kind auto-resolve after first surface. The tool is a thin write-and-tag layer over the `remembering` skill — every persistent operation is a `_remember` / `_exec` call against Turso. Issue #5 calls this out as the test for a tool that writes to the user's external reminder system; v0.4 `writes[]` would distinguish this from third-party transmits the way it would for blog_publish.

Tags: remindersmemoryschedulingrecurringmuninn-internal

License: MIT

-

Last fetched 2026-06-18T09:09:16Z (live)

+

Last fetched 2026-06-19T10:17:10Z (live)

diff --git a/registry/muninn-task-policy/index.html b/registry/muninn-task-policy/index.html index d32e003..0eebefc 100644 --- a/registry/muninn-task-policy/index.html +++ b/registry/muninn-task-policy/index.html @@ -636,7 +636,7 @@

Three loads, all routed through the `remembering` library against Turso: (1) the {task_name}-command ops entry via config_get, (2) the N most recent memories tagged BOTH the task name AND 'preference' via recall(), (3) the most recent memory tagged with the task name and 'perch-time' but NOT 'skip' via a direct _exec SQL. Returns a dict combining the three plus a days_since_last_run helper. Pure read — no writes. The utility itself has no direct outbound HTTP; all I/O is mediated by the remembering library, which talks to Turso. See oaustegard/muninn-utilities#14 for the architectural background.

Tags: policyperchconfigmemorymuninn-internal

License: MIT

-

Last fetched 2026-06-18T09:09:17Z (live)

+

Last fetched 2026-06-19T10:17:10Z (live)

diff --git a/registry/muninn-verify-patch/index.html b/registry/muninn-verify-patch/index.html index dbfab9f..dcd6e18 100644 --- a/registry/muninn-verify-patch/index.html +++ b/registry/muninn-verify-patch/index.html @@ -652,7 +652,7 @@

Read-and-reason utility, not a write/execute one. The model is invoked via the orchestrating-agents skill's `claude_client.invoke_claude` (uses ANTHROPIC_API_KEY). Verification results are persisted via the remembering library (uses TURSO_TOKEN, TURSO_URL) so the prediction can later be compared to actual merge outcome via `stamp_verification(tracking_id, outcome)`. The outcome ledger feeds calibration analysis (review_verifications) — over time, this surfaces patterns of overconfident verdicts.

Tags: verificationpatch-reviewcalibrationanthropicmemory

License: MIT

-

Last fetched 2026-06-18T09:09:17Z (live)

+

Last fetched 2026-06-19T10:17:10Z (live)

diff --git a/registry/muninn-whtwnd/index.html b/registry/muninn-whtwnd/index.html index b52479c..44925f8 100644 --- a/registry/muninn-whtwnd/index.html +++ b/registry/muninn-whtwnd/index.html @@ -674,7 +674,7 @@

Five operations: post, update, delete, list, upload-image. Auth via the same `com.atproto.server.createSession` flow as bsky_card — the same handle and app password reach two distinct AppViews (Bluesky's and WhiteWind's) because both ride on the same PDS. Image attachments are uploaded as ATProto blobs and embedded in the entry's `blobs[]`; the URL pattern is the PDS-served `getBlob` endpoint, NOT the bsky CDN (which 500s for non-Bluesky records). The tool's only persistence is the records it creates on the user's PDS — those are the user's own data on the user's own infrastructure, not third-party transmissions. Issue #5 calls this out as the third atproto-credential utility (after bsky_card and the bsky-announce chain in blog_publish), the third publishing target (after perch_publish and blog_publish), and a novel-domain test (a federated atproto blog rather than a Bluesky post).

Tags: atprotowhtwndblogpublishingfederated

License: MIT

-

Last fetched 2026-06-18T09:09:17Z (live)

+

Last fetched 2026-06-19T10:17:10Z (live)

diff --git a/registry/muninn-zeitgeist-delta/index.html b/registry/muninn-zeitgeist-delta/index.html index dcce4d9..16837fb 100644 --- a/registry/muninn-zeitgeist-delta/index.html +++ b/registry/muninn-zeitgeist-delta/index.html @@ -643,7 +643,7 @@

Reads recent `zeitgeist`-tagged memories from Turso, splits the candidate draft into topic sections by markdown header, embeds each section + each prior memory's sections via Gemini's text-embedding model (proxied through Cloudflare AI Gateway), and computes cosine similarity. Sections above a duplicate threshold are flagged as redundant; the rest pass through into a compressed delta-only version that can be stored without bloating the memory store. Like `verify_patch` (LLM-as-judge with Anthropic + optional Turso writes) but with embeddings instead of completions and a different cloud surface (Cloudflare AI Gateway → Gemini, not Anthropic). Issue #5 calls this out as the test for whether two LLM-as-judge tools share a manifest pattern.

Tags: embeddingsdeduplicationmemoryllmgeminicloudflare-ai-gateway

License: MIT

-

Last fetched 2026-06-18T09:09:17Z (live)

+

Last fetched 2026-06-19T10:17:10Z (live)

diff --git a/registry/vi-federation/index.html b/registry/vi-federation/index.html index bf34f06..05ab901 100644 --- a/registry/vi-federation/index.html +++ b/registry/vi-federation/index.html @@ -656,7 +656,7 @@

spec · yepgent

-

Pages generated 2026-06-19T10:09:53Z · manifests.json · changelog.json

+

Pages generated 2026-06-19T10:17:09Z · manifests.json · changelog.json

diff --git a/registry/yep-memory/index.html b/registry/yep-memory/index.html index a76f6fe..e99a99d 100644 --- a/registry/yep-memory/index.html +++ b/registry/yep-memory/index.html @@ -610,7 +610,7 @@

Yep's memory subsystem exposes three orthogonal stores: facts (key-value, upsert), reflections (free-form learned generalizations), and episodes (event log with semantic search). Used internally by Yep and surfaced here as the canonical example for any personal-agent stack that wants long-running cross-session memory. Backed by Supabase + pgvector; reflection writes are deliberate and sparse, not autopilot. Published as the first dogfood entry on drknowhow/Yep to validate the federation pipeline end-to-end against toolspace.yepgent.com.

Tags: memorypersonal-agentsemantic-searchsupabasepgvector

License: MIT

-

Last fetched 2026-06-18T09:09:16Z (live)

+

Last fetched 2026-06-19T10:17:09Z (live)