flowcore-io/usable
v0.1.0MIT
Knowledge-first workflow for agents backed by Usable. Search team knowledge before implementing, retrieve complete sources, separate evidence from assumptions, and verify before claiming success.
Changelog
All notable changes to this project are documented here.
Format based on Keep a Changelog. This project adheres to Semantic Versioning.
Unreleased
Added
- Usable brand assets:
assets/usable-icon.svg(composer icon) andassets/usable-logo.png(600×600 logo), taken from the Usable brand kit. - Codex interface metadata under the
extensions["com.openai"]namespace inplugin.json: display name, short and long descriptions, developer name, category, website, privacy and terms URLs, brand colour#347cbf, icon and logo paths, and a default prompt. - Validation of client-extension file references: paths must be plugin-relative, must stay inside the plugin root, and must exist. Three new self-tests cover a missing asset, a path escaping the root, and a namespace without a reverse domain.
Changed
assets/is now included in the release archive allowlist.homepageand author URL now use the canonicalhttps://www.usable.dev, which is where the apex domain redirects.
Notes
- Codex surfaced the plugin with a generic icon and "Website: Unavailable" because it reads
presentation metadata from an
interfaceobject, not from the Agent Pluginshomepagefield. Whether Codex reads that object from the inlinecom.openaiextension has not been verified visually — the CLI exposes no way to inspect resolved interface metadata. If the icon and website still do not render, the fallback is a.codex-plugin/plugin.jsonoverlay, which must be added carefully because a malformed overlay could disturb skill discovery that currently works.
0.1.0 — 2026-08-07
First prerelease. No client has completed all five acceptance steps, so no client is listed as fully supported; Codex loads the package and both skills.
Added
- Initial package scaffold conforming to Agent Plugins
1.0.0. plugin.jsonmanifest, MIT licensed.usable-knowledge-workflowskill — read-first retrieval loop with knowledge receipts, freshness ranking, verification requirements, and explicit degraded mode.- Reference material for the workflow skill: evidence and verification, knowledge lifecycle, and security boundaries.
usable-knowledge-captureskill — verified writeback, gated on deduplication, redaction, and user confirmation.mcp.jsondeclaring the hosted Usable MCP server athttps://usable.dev/api/mcpoverstreamable-http, URL-only with no credentials.- Documentation: installation, authentication, supported clients, permissions and data flow, threat model, troubleshooting.
scripts/validate-package.mjs— schema, skill, path-containment, symlink, and credential checks with no dependencies.scripts/build-release.mjs— allowlisted release archive with SHA-256 checksum.- CI: pull-request validation and tag-triggered release workflows.
- Governance:
SECURITY.md,CONTRIBUTING.md,CODE_OF_CONDUCT.md, CODEOWNERS, issue and pull-request templates. - Codex marketplace descriptor at
.agents/plugins/marketplace.json. Codex installs plugins from marketplaces rather than archives, so the package was not installable there without it. - Verified Codex install guide at
examples/codex/README.md.
Verified
- OAuth discovery against production:
POST /api/mcpreturns401with aWWW-Authenticateheader carryingresource_metadata; RFC 9728 protected-resource metadata and RFC 8414 authorization-server metadata both resolve; PKCES256and dynamic client registration are supported. Both the origin-level and RFC 9728 path-suffixed metadata URLs return the same JSON document, and unmatched.well-knownpaths return a JSON404. - Codex CLI 0.146.0 on macOS: the package installs and both skills reach the model as
usable:usable-knowledge-workflowandusable:usable-knowledge-capture. - Reproducible release archive: two consecutive builds are byte-identical, under both bsdtar and GNU tar.
Known limitations
- No client has completed all five acceptance steps, so none is listed as fully supported. Codex passes step 1 only.
- The Codex MCP step is inconclusive, not passed: the test machine already had an
identical
[mcp_servers.usable]entry in~/.codex/config.toml, so the entry survived removing the plugin and cannot be attributed to it. A plugin server keyedusablemay also collide with a user-level server of the same name. - Claude Code is untested and expected to need a different format — it uses
.claude-plugin/plugin.jsonand was not part of the Agent Plugins launch lineup. - Headless authorization is not wired up.
client_credentialsanddevice_codeare advertised by the authorization server but neither is implemented or tested here. - The metadata advertises
resource: https://usable.devwhile the endpoint served ishttps://usable.dev/api/mcp. Whether the authorization server accepts the endpoint URL as a resource indicator, and whether token audiences validate at the endpoint, is untested. - No signed release attestations yet; releases carry immutable tags and SHA-256 checksums only.
- The release archive contains only Markdown and JSON. A marketplace or Git install
materialises the repository, so
scripts/andtests/are present in the installed copy; the client does not execute them.