Repository navigation
v8.3.0 — The Business Card Edition
Business cards say what the repo is: a package can be a CLI or a library, from npm, PyPI or crates.io, and only an MCP server gets MCP cards. Found rolling the card out to 14 repos with 8.2.2. 2209 tests.
Added
faf card init --kind <mcp|cli|library>. Says what--packageis. The endpoint protocol follows the kind, over stdio.mcpis the default, so--packagealone writes what it did before. An unknown kind is refused by name, and--kindwithout--packageis refused.- Registry prefixes on
--package:npm:<name>,pypi:<name>,crates:<name>. A bare name is still npm. Crates are recorded asregistryType: cargo(the package-URL type for crates.io; the MCP registry names no Rust type) and checked against the crate-name rule. faf card init --homepage <url>. Setsagent.homepage. It must be an http(s) URL. Without it, the homepage is stillhttps://<domain>.- The interactive flow asks what a package is (mcp, cli or library; Enter keeps mcp), and takes
pypi:andcrates:names. faf initoffers the business card. When the project has noagent.fafa,.fafaor.well-known/fafa, init ends withnext: 'faf card init' — your repo's business card. It writes nothing for the card.
Changed
faf cardswrites MCP cards only for an MCP server. When the agent.fafa has nomcpendpoint, it skips the MCP Server Card and the registry server.json, beside a project.faf too, and says so in one line.--target mcpor--target registryon such a file is refused with the reason. A .fafa with anmcpendpoint works as before.--urlhelp says it is for a live endpoint people call, and points things people install at--package. The default protocol stays a2a.
FAF defines. AGENTS.md instructs. AI codes.