@jterrazz/manifest
v0.2.0
Published
Your site's presence, declared once — a manifest projected into every machine-facing surface (metadata, identity JSON-LD, sitemap, robots, llms.txt), with an audit that verifies the live site against it.
Readme
@jterrazz/manifest
Your site's presence, declared once. The manifest declares — identity, pages, discovery — the projections derive every surface from it (metadata, identity JSON-LD, sitemap, robots.txt, llms.txt), and the audit (run through specification.website() from @jterrazz/test) verifies the live site against it.
Install
npm install @jterrazz/manifestDeclare
// manifest.config.ts
import { defineSite, person } from '@jterrazz/manifest';
export const site = defineSite({
address: 'https://example.com',
languages: { all: ['en', 'fr'], main: 'en' },
identity: person({ name: '…', headline: '…', occupation: '…', profiles: [] }),
voice: { brand: '…', description: '…', titlePattern: '%s | …' },
sharing: { card: { image: '/og.png', caption: '…', width: 1200, height: 630 } },
discovery: { hidden: ['/api/'], aiCrawlers: 'welcome' },
channels: { feed: true, llms: true },
});Project (Next.js)
// app/sitemap.ts
export default createSitemap(site, [articlesProvider, pagesProvider]);
// app/robots.ts
export default createRobots(site);
// app/llms.txt/route.ts
export const GET = createLlms(site, [articlesProvider]);Verify
// specs/website/manifest/manifest.test.ts
import { audit } from '@jterrazz/manifest/testing';
audit.website(website, site); // website from specification.website() (@jterrazz/test)The model speaks the language of intent; the projections speak the language of standards. The domain knowledge (SEO, GEO, structured data, content) ships as agent skills in skills/.
MIT © Jean-Baptiste Terrazzoni
