contentrain-init — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited contentrain-init (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Set up Contentrain content infrastructure in an existing project.
The user wants to add Contentrain to their project, or says something like "set up contentrain", "initialize contentrain", "add content management".
Read package.json to identify the framework:
| Dependency | Stack |
|---|---|
nuxt | Nuxt 3 |
next | Next.js |
@astrojs/astro or astro | Astro |
@sveltejs/kit | SvelteKit |
If none match, treat as a generic Node.js project. Report the detected stack to the user before proceeding.
Ask the user for:
["en"]. Use ISO 639-1 codes."en".marketing, blog, app, docs). Ask the user to confirm or modify.Call the MCP tool:
contentrain_init(stack: "<detected>", locales: ["en", ...], domains: ["marketing", ...])This creates the .contentrain/ directory structure, config.json, and initial context.json.
After initialization, review the project for conventions to inform content creation:
professional, casual, technical).Note: Do NOT manually edit context.json. It is managed automatically by MCP tools and updated after every write operation.Based on the project analysis, suggest models that would be useful:
hero (singleton), features (singleton or collection).blog-post (document), categories (collection), authors (collection).ui-labels (dictionary), error-messages (dictionary).Present suggestions to the user and ask which to create. For selected models, call contentrain_model_save for each.
If the project matches a common pattern, offer to use a scaffold template:
contentrain_scaffold(template: "blog", locales: ["en"], with_sample_content: true)Available templates: blog, landing, docs, ecommerce, saas, i18n, mobile.
Copy the appropriate rules file to the project:
CLAUDE.md or create a new section..cursorrules with Contentrain conventions.Include a reference to the framework-specific guide (nuxt.md, next.md, astro.md, sveltekit.md).
Report to the user:
.contentrain/.#contentrain import).#contentrain imports won't work. See: contentrain-generate skill.After initialization, start the local review UI to explore the project:
contentrain serveThis opens http://localhost:3333 where you can browse models, content, and validation results.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.