<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Valinor changelog</title>
        <link>https://www.valinorci.com/changelog</link>
        <description>What’s new in each release of Valinor — self-enforcing engineering discipline for agentic development.</description>
        <lastBuildDate>Sat, 13 Jun 2026 10:24:56 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>Valinor changelog</title>
            <url>https://www.valinorci.com/favicon.ico</url>
            <link>https://www.valinorci.com/changelog</link>
        </image>
        <copyright>© 2026 Camber</copyright>
        <item>
            <title><![CDATA[1.2.0]]></title>
            <link>https://www.valinorci.com/changelog/#120</link>
            <guid isPermaLink="false">https://www.valinorci.com/changelog/#120</guid>
            <pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[

<p><strong>Design craft gets the same teeth as code.</strong> Four new standards govern your UI — design tokens, interaction states, visual baselines, and the judgment layer — each found real defects on our own site the day it shipped. Plus the fixes from the first full consumer adoption run.</p>
<details open=""><summary><h3 id="-improvements"> Improvements</h3></summary>
<ul>
<li><strong>A visual change can no longer slip past review unnoticed.</strong> Opt in with <code>design.visualBaseline.enabled: true</code> and every PR diffs your declared pages against committed baseline screenshots — an intended change re-records the baseline, with the why, in the same PR.</li>
<li><strong>Every state of your UI is now someone's job.</strong> Declare <code>design.interactionStates</code> and <code>valinor interaction-states-check</code> fails CI on a light token with no dark twin, animation that ignores <code>prefers-reduced-motion</code>, or a hover state with no keyboard equivalent.</li>
<li><strong>Your agents now design against the masters' bar.</strong> The new design-direction standard pins a ten-principle corpus, reviews every UI diff with the <code>design-craft</code> rule, and ships the <code>valinor-design-loop</code> skill — draft, screenshot, critique, revise until it passes.</li>
<li><strong>Your design system now has a deterministic gate.</strong> Declare your tokens and <code>valinor design-tokens-check</code> asserts token-resolved colors, a sane type scale, WCAG-AA contrast (integrity-floored), the 4px spacing grid, and a 150–400ms motion envelope.</li>
</ul>
</details>]]></content:encoded>
            <author>Camber</author>
        </item>
        <item>
            <title><![CDATA[1.1.0]]></title>
            <link>https://www.valinorci.com/changelog/#110</link>
            <guid isPermaLink="false">https://www.valinorci.com/changelog/#110</guid>
            <pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[

<p><strong>Your governance now shows its work.</strong> Every gate run feeds a live score-over-time view with zero setup, performance budgets become a real CI gate, and the workspace <code>/audit</code> page opens with whole-fleet health at a glance. Rounded out by a wave of fixes from real adoption runs.</p>
<details><summary><h3 id="-improvements-1"> Improvements</h3></summary>
<ul>
<li><strong>Gate-event telemetry is live by default — and introduces itself.</strong> Anonymous <code>gate_run</code> events power the score-over-time view with zero setup; your first interactive run prints the <code>telemetry.*</code> dials and the universal <code>DO_NOT_TRACK</code> opt-out.</li>
<li><strong>Performance budgets on your live pages are now a real CI gate.</strong> Declare <code>performance: { enabled: true, urls: [...] }</code> and a zero-secret workflow measures them with Lighthouse and fails CI on a miss — an honestly-recorded baseline warns as dated debt instead.</li>
<li><strong>The reusable <code>gates.yml</code> workflow runs on the public zero-auth launcher.</strong> It resolves <code>@theappagency/valinor@^1</code>, so it needs no npm auth on your runner.</li>
<li><strong>The scheduled agent-dispatch now actually runs — and needs no Anthropic key.</strong> A scaffold bug invalidated the whole workflow file (re-run <code>valinor init</code> to fix it), and runs now acquire their key zero-secret via the Valinor broker — your own <code>ANTHROPIC_API_KEY</code> still wins.</li>
<li><strong>The doc-freshness gate stops flagging plain English as dead CLI commands.</strong> The dead-reference check now reads only backticked commands and fenced code blocks, leaving your prose alone.</li>
<li><strong>Your workspace's /audit page opens with whole-fleet health at a glance.</strong> Repos meeting the bar, the median grade, the biggest mover, a plain-prose digest, and one median trend line — repos with no audit yet counted honestly, never shown as errors.</li>
<li><strong>Release notes you can scan in seconds.</strong> Every CHANGELOG bullet, RELEASES highlight, and changelog-site lead now has a written length budget, enforced by the tools that generate and review them.</li>
<li><strong>Your audit trend can tell a richer story — opt in to labeled AI enrichment.</strong> Set <code>narrative: { enrichment: enabled }</code> and clearly-labeled advisory prose (never a finding, a path, or a snippet) layers over the deterministic story on your /audit page.</li>
<li><strong>The typed Greptile verdict path works headlessly now.</strong> Score and review-wait reads reach Greptile's real API from CI, including the typed confidence score — fewer comment-scrape fallbacks, more authoritative merge-gate verdicts.</li>
</ul>
</details>]]></content:encoded>
            <author>Camber</author>
        </item>
        <item>
            <title><![CDATA[1.0.0]]></title>
            <link>https://www.valinorci.com/changelog/#100</link>
            <guid isPermaLink="false">https://www.valinorci.com/changelog/#100</guid>
            <pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[

<p><strong>Valinor is 1.0.</strong> Any repo, in any supported stack, can adopt Valinor with one command and zero secrets — <code>npx @theappagency/valinor init</code> — and real production repos run their gates green on that path today. From here, 1.x means your configs and workflows keep working.</p>
<details><summary><h3 id="-improvements-2"> Improvements</h3></summary>
<ul>
<li><strong>Running Valinor needs zero setup — no tokens, no <code>.npmrc</code>, no secrets.</strong> The public launcher fetches a SHA-256-verified bundle from Valinor's own endpoint, every scaffolded workflow now runs on it, and a <code>valinor init</code> re-run migrates old workflows automatically.</li>
<li><strong>Every workspace gets its own private site at <code>&lt;workspace&gt;.valinorci.com</code>.</strong> Behind a workspace password: a merged multi-repo changelog, a repo orientation page, and the /audit score-trend page — one shell with dark mode, data refreshed hourly.</li>
<li><strong>Putting a workspace live is one command — <code>valinor register-workspace</code> (Camber-admin).</strong> It mints the password, registers the tenant and repos, adds the subdomain, prints the one DNS record to add, and verifies every write by reading it back.</li>
<li><strong>Audit grades publish themselves — and tell their story.</strong> The scheduled dispatch keeps the grade-only ledger on a <code>valinor/score-ledger</code> data branch your /audit page reads, and every recorded grade carries a deterministic plain-language narrative of what moved and why.</li>
<li><strong>valinorci.com is one redesigned site on one domain.</strong> The landing page, /docs, and /changelog now share one design system and navigation, every old subdomain URL redirects 1:1, and the RSS feed and dark mode carry over.</li>
<li><strong>The standing Release PR works on every stack.</strong> It rolls your repo's real version source — <code>composer.json</code>, <code>pyproject.toml</code>, a Gradle <code>versionName</code>, a <code>*.podspec</code>, or tag-is-the-version for Swift — and stays a quiet draft until you mark it ready to cut.</li>
<li><strong>Greptile reviews wait for green.</strong> Opt in with <code>review-trigger: { enabled: true }</code> and the canonical workflow posts the review trigger only once your PR's entire combined check state is green — exactly once per commit, zero secrets, never a deadlock.</li>
<li><strong>The weekly config-drift sweep stops crying wolf about your review count.</strong> Drift checks honor the count your <code>branch-protection.json</code> declares, <code>init</code> scaffolds the pair consistent, and any disagreement prints a loud note — never a silent override.</li>
<li><strong>Governance "concerns" are now called "standards."</strong> Your dials, CLI invocations, and gate names never carried the old word, and every stored artifact written under it keeps loading — a backlog finding keeps its identity across the rename.</li>
<li><strong>The doctrine moves to v1.21.0.</strong> Agents now fix review findings the moment a review lands (only merges serialize) and maintain maximum collision-free parallelization (v1.20.0) — an idle lane is a defect; repos pick both up on the next <code>valinor init</code> re-run.</li>
<li><strong>The token broker is live.</strong> Your CI presents GitHub's short-lived identity token and gets back a repo-scoped, permission-scoped, self-expiring Valinor token — nothing to create, nothing to leak, nothing to rotate.</li>
<li><strong>Re-running <code>valinor init</code> reconciles early-adopter residue — loudly, never touching what's yours.</strong> It keeps your required-check job name, names any gate dial below today's <code>warn</code> defaults with the one-line fix, and audits now report by default.</li>
<li><strong><code>valinor init</code> hands your agents their toolbelt.</strong> It prints stack-specific <code>npx skills find</code> recommendations and bridges your repo's own <code>skills/valinor-*</code> into <code>.claude/skills/</code> — one <code>/skills</code> away in every session.</li>
<li><strong>Audit grades divide by production code only (formula v4).</strong> Test code is measured separately (<code>testKlocs</code>), so a big test suite no longer waters down the score — expect honest drops; <code>audit-record --regrade</code> migrates a stored audit.</li>
<li><strong>A wave of fixes from real adoption runs.</strong> Stack detection has one brain (<code>init</code> and the audit can't disagree), <code>valinor audit-record</code> lands the score in the target repo from anywhere, and six <code>init</code> sharp edges around default branches, check names, and credentials are gone.</li>
</ul>
</details>]]></content:encoded>
            <author>Camber</author>
        </item>
        <item>
            <title><![CDATA[0.9.0]]></title>
            <link>https://www.valinorci.com/changelog/#090</link>
            <guid isPermaLink="false">https://www.valinorci.com/changelog/#090</guid>
            <pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[

<p><strong>Valinor's stack matrix fills out.</strong> PHP/Laravel, Python, Kotlin/Android, Swift/iOS, React Native, and Rails are now fully supported, six deploy targets are verified to have actually landed, and audit grades get two honesty corrections.</p>
<details><summary><h3 id="-improvements-3"> Improvements</h3></summary>
<ul>
<li><strong>Six stacks are now fully supported.</strong> Run <code>valinor init</code> on a PHP/Laravel, Python, Rails, Kotlin/Android, Swift/iOS, or React Native repo and it just works — auto-detection, the right CI runtime, live dependency audits, and real per-language KLOC in the repo audit.</li>
<li><strong>Deploys are verified to have actually landed — on six more targets.</strong> Railway, Heroku, AWS, Google Play, App Store Connect, and EAS jobs re-read the live platform and assert your exact commit is serving; what a platform can't attest is declared loudly, never assumed green.</li>
<li><strong>Audit grades get two honesty corrections (formulas v2 + v3).</strong> Every finding now maps to a sub-score and weighs by its real occurrence count — 53 vulnerabilities can no longer hide inside 2 findings; inflated grades drop, and <code>audit-record --regrade</code> migrates stored audits.</li>
<li><strong>Releases understand a Swift package's version IS its git tag.</strong> <code>valinor release</code> rolls your CHANGELOG and notes, skips the manifest edit with a printed note, and lets the tag carry the version.</li>
<li><strong>Valinor tells you when it breaks — and lets you measure your gates.</strong> Two strictly-advisory telemetry channels: privacy-whitelisted crash reports and <code>gate_run</code> events to your own PostHog key — <code>DO_NOT_TRACK</code> silences both, a failing send never breaks a build.</li>
<li><strong>Govern a whole folder of repos at once.</strong> <code>valinor init-workspace</code> adopts Valinor across every git checkout under a directory, and <code>doctrine-check-all</code> / <code>audit-all</code> sweep them with honest rollups — an ungoverned repo can't hide inside a green workspace.</li>
<li><strong><code>check-dependency-health</code> works in a local working tree.</strong> When CI's report files are absent and you're not in CI, the gate runs <code>npm audit --json</code> itself, per manifest — the same verdict CI would give.</li>
<li><strong>Gates no longer crash on broken symlinks.</strong> <code>audit-data</code>, doc-freshness, docs-coverage, and site-freshness now skip dangling symlinks (fresh CocoaPods clones) instead of crashing on <code>ENOENT</code>.</li>
<li><strong><code>valinor init</code> sets up <code>~/.npmrc</code> for you.</strong> It probes your <code>gh</code> token for <code>read:packages</code> and writes the registry + auth lines itself — the most common first-install failure, gone; re-runs are a no-op.</li>
<li><strong>The doctrine block always lands at the top of your AGENTS.md / CLAUDE.md.</strong> <code>init</code> moves a drifted block to the top on every run, and a <code>doctrine-check</code> position guard enforces it.</li>
<li><strong>The Capabilities page is cleaner — and eight governance IDs are renamed for clarity.</strong> Meta checks collapse into their own section, each row shows one posture pill, and renamed <code>doc-freshness</code>/<code>docs-coverage</code> dials auto-migrate on a <code>valinor init</code> re-run.</li>
<li><strong>The <code>valinor audit</code> launcher's printed instructions work end-to-end.</strong> <code>audit-show valinor-audit</code> now resolves to the bundled orchestrator skill.</li>
</ul>
</details>]]></content:encoded>
            <author>Camber</author>
        </item>
        <item>
            <title><![CDATA[0.8.1]]></title>
            <link>https://www.valinorci.com/changelog/#081</link>
            <guid isPermaLink="false">https://www.valinorci.com/changelog/#081</guid>
            <pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[

<p><strong>Valinor now installs and runs cleanly on every repo.</strong> v0.8.0 shipped broken for installers — any command crashed on a missing build-only <code>typescript</code>. This release fixes it and hardens the release pipeline so the class can never publish again.</p>
<details><summary><h3 id="-improvements-4"> Improvements</h3></summary>
<ul>
<li><strong>The v0.8.0 installer crash is fixed — and the class can't publish again.</strong> <code>typescript</code> now loads only for the one feature needing it, and the release pipeline packs and runs the package in a clean dependency-free install before publishing — a broken build fails the release.</li>
</ul>
</details>]]></content:encoded>
            <author>Camber</author>
        </item>
        <item>
            <title><![CDATA[0.8.0]]></title>
            <link>https://www.valinorci.com/changelog/#080</link>
            <guid isPermaLink="false">https://www.valinorci.com/changelog/#080</guid>
            <pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[

<p><strong>Your governance grows a memory and a canary.</strong> The audit now tracks each finding across runs, a scheduled conformance canary catches your deployed API the moment it stops matching its spec, and a new Capabilities page doubles as an interactive <code>governance.config.yml</code> builder.</p>
<details><summary><h3 id="-improvements-5"> Improvements</h3></summary>
<ul>
<li><strong>A new Capabilities page shows everything Valinor does to your repo.</strong> Every gate is a collapsible row generated from Valinor's own registry; dial each Off · Advisory · Enforced and copy the resulting <code>governance.config.yml</code> — at /docs/capabilities.</li>
<li><strong>A scheduled canary catches your deployed API the moment it breaks its spec.</strong> Opt in with <code>api.liveConformance: { enabled: true }</code> and a read-only check verifies live responses against your committed spec — conform, breach, or a loud couldn't-check, never a silent green.</li>
<li><strong>Your audit now has a memory.</strong> <code>valinor audit-reconcile</code> tracks each finding as new → still-open → resolved → reopened, ranks the backlog by severity × ease × age, and remembers your accepted/false-positive triage — privacy-safe by construction.</li>
<li><strong>The doc-freshness gate stops false-flagging forward-looking plans.</strong> A file a <code>docs/plans/</code> or <code>docs/research/</code> entry names before it exists is no longer reported as a dead reference.</li>
<li><strong>Your scheduled agent loop has a budget — and a brake.</strong> Every run records its spend to a committed ledger, a per-run cap stops a runaway, and a monthly <code>agent-dispatch.budget</code> circuit-breaker skips runs once spend hits the cap — failing safe, never spending blind.</li>
<li><strong>Valinor runs its own scheduled agent-dispatch — consumer #0 of the cron'd agent it ships.</strong> A weekly headless run turns a due release into an opened PR and anything riskier into a filed issue — never a merge, never a push to main.</li>
<li><strong>The release loop can't open a spurious empty Release PR — and verifies it actually published.</strong> A cut with nothing in <code>[Unreleased]</code> refuses to roll, and the publish installs the just-published package back and runs it — a broken publish fails loudly.</li>
</ul>
</details>]]></content:encoded>
            <author>Camber</author>
        </item>
        <item>
            <title><![CDATA[0.7.0]]></title>
            <link>https://www.valinorci.com/changelog/#070</link>
            <guid isPermaLink="false">https://www.valinorci.com/changelog/#070</guid>
            <pubDate>Sun, 07 Jun 2026 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[

<p><strong>The 5/5 merge bar reaches your repo.</strong> The strict "5/5 or it doesn't merge" score gate now propagates to every governed repo, <code>valinor init</code> scaffolds a release pipeline and a config-drift sweep, and the new <code>valinor cadence</code> command tells you when a release is due.</p>
<details><summary><h3 id="-improvements-6"> Improvements</h3></summary>
<ul>
<li><strong>The strict 5/5-or-no-merge rule is enforced on YOUR repo.</strong> <code>valinor init</code> scaffolds a zero-secret workflow that posts a <code>greptile-score-verify</code> status — green at 5/5, red below, failing closed — reading the score only from the reviewer's own attributed comments.</li>
<li><strong>Non-JavaScript repos are checked where they were silently waved through.</strong> Repo hygiene knows each stack's build artifacts, three AI-review rules now read non-JS tests, UI, and types, and <code>init</code> installs the vulnerability scanner for Python and Kotlin.</li>
<li><strong>One command tells you when a release is due.</strong> <code>valinor cadence</code> rolls every overdue standing obligation — release cadence, dated tool re-checks, the standing sweeps — into one advisory summary with a loud OVERDUE headline.</li>
<li><strong>Valinor can act on what's overdue.</strong> An opt-in scheduled agent turns a due release into an opened PR and anything riskier into a filed issue — inside a hard safety boundary that never merges, never pushes to main, and is cost-capped.</li>
<li><strong>Changelog and marketing copy now ship draft-then-review.</strong> The writing-quality standard records a two-step pipeline — draft with a copywriting skill, QA with a copy-editing pass — keeping the command names and config keys that make dev-tool notes credible.</li>
<li><strong>A release can no longer publish a "fill me in" placeholder on your changelog site.</strong> The cut derives a real, publishable headline from the release's own highlights — sharpen it later if you like, but deploy is never blocked on it.</li>
<li><strong>Cutting releases is turnkey on YOUR repo.</strong> <code>valinor init</code> scaffolds a standing Release PR pipeline that tags, verifies, and optionally publishes with a post-publish install-back proof — zero secrets, on a protected <code>main</code>, per-stack publish steps included.</li>
<li><strong>Valinor watches your repo's GitHub settings for drift on a schedule.</strong> A scaffolded weekly sweep diffs live branch protection and repo settings against your declared baseline on the built-in token — admin-locked fields read <code>⚠ UNVERIFIABLE</code>, never pretended green.</li>
</ul>
</details>]]></content:encoded>
            <author>Camber</author>
        </item>
        <item>
            <title><![CDATA[0.6.0]]></title>
            <link>https://www.valinorci.com/changelog/#060</link>
            <guid isPermaLink="false">https://www.valinorci.com/changelog/#060</guid>
            <pubDate>Sat, 06 Jun 2026 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[

<p><strong>Rails joins the governed stacks — and your reviewer reads finished work.</strong> The merge gate now holds every PR in draft until its quality gates pass, and Valinor continuously re-proves its own review rules still fire — the governance you adopt can't silently rot.</p>
<details><summary><h3 id="-improvements-7"> Improvements</h3></summary>
<ul>
<li><strong>Your PRs stay in draft until they're ready for review.</strong> A scaffolded workflow marks a PR ready the moment its pre-review checks go green (<code>merge-gate.pre-review-checks</code>) — fail-open, and it never yanks a PR back to draft.</li>
<li><strong>Valinor continuously proves its AI-review rules still fire.</strong> On a schedule each rule is re-run against a known-bad and a clean example; a stale verification turns the gate red, so the rules you inherit are proven to fire.</li>
<li><strong>Agents orient before they work (doctrine v1.18.0).</strong> Before exploring or planning, an agent must fetch, confirm its branch, and check its standing against <code>origin/main</code> — never researching against a stale checkout.</li>
<li><strong>Ruby on Rails is a documented, selectable stack — audited for real.</strong> <code>valinor init --stack rails</code> provisions the Ruby runtime and the gem vulnerability scanner, a missing scanner fails loudly, and Heroku/Railway deploy verification is documented.</li>
<li><strong>Cutting a release is push-button again.</strong> The roll projects the new release onto your changelog site automatically, and the Release PR's CI checks now fire (its push uses Valinor's GitHub App) — merging the Release PR is the whole release.</li>
<li><strong>The setup docs name the one manual Greptile step.</strong> Install the App and activate your repo for review — the rest is Greptile's own defaults plus the single re-review opt-in <code>valinor init</code> already configures.</li>
</ul>
</details>]]></content:encoded>
            <author>Camber</author>
        </item>
        <item>
            <title><![CDATA[0.5.0]]></title>
            <link>https://www.valinorci.com/changelog/#050</link>
            <guid isPermaLink="false">https://www.valinorci.com/changelog/#050</guid>
            <pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[

<p><strong>A stack-reach release.</strong> Valinor's enforcement now works across your real stack — PHP/Laravel, Swift, Kotlin, React Native, and Python, not just npm and Node — and a new standard keeps your API spec honest against your code.</p>
<details><summary><h3 id="-improvements-8"> Improvements</h3></summary>
<ul>
<li><strong>Enforcement works across your real stack.</strong> Dependency health audits Composer, pip/Poetry/uv, SwiftPM, Gradle, and Maven; <code>valinor init</code> scaffolds per-stack CI; and where a stack has no tool, Valinor reports <code>UNVERIFIABLE</code> loudly instead of a false all-clear.</li>
<li><strong>A new standard keeps your API spec tracked against your implementation.</strong> The opt-in <code>spec-contract</code> gate verifies your OpenAPI/GraphQL/protobuf spec still matches what your code produces — a clean no-op for a repo with no API.</li>
<li><strong>Security review is current — OWASP Top 10:2025.</strong> Dependency risk reframes as Software Supply Chain Failures, Security Misconfiguration gains coverage, and every versioned external standard now carries a verify-by date so it can't silently age.</li>
<li><strong>Releases and deploys are verified to have actually landed.</strong> A published package is installed back to confirm it resolves and runs; each deployed site is confirmed live, by commit, after it ships.</li>
<li><strong>Copy-ready starters for all three client surfaces.</strong> License-clean Next.js scaffolds for a help center and a changelog join the API-docs template — stand up a surface from a working base, not a blank page.</li>
<li><strong>The help center leads with how Valinor levels up your agent.</strong> A new agent-governance page tells the under-told story: adopting Valinor hands every agent a disciplined methodology, not just code gates.</li>
<li><strong>The doctrine moves to v1.17.0</strong>, threading stack-agnosticism, spec-contract, deploy verification, and OWASP-2025 into the always-on methodology your agents read.</li>
</ul>
</details>]]></content:encoded>
            <author>Camber</author>
        </item>
        <item>
            <title><![CDATA[0.4.0]]></title>
            <link>https://www.valinorci.com/changelog/#040</link>
            <guid isPermaLink="false">https://www.valinorci.com/changelog/#040</guid>
            <pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[

<p><strong>A governance-hardening release.</strong> The release flow becomes a true one-click Release PR on a locked-down <code>main</code>, your compliance posture gains an auditor-readable evidence trail, and the doctrine moves to v1.14.0 — every "manual" promise now backed by a gate.</p>
<details><summary><h3 id="-improvements-9"> Improvements</h3></summary>
<ul>
<li><strong>Cutting a release is a true one-click PR — on a locked-down <code>main</code>.</strong> A standing Release PR carries the whole roll (version, changelog, notes, lockfile); merging it is the release, with only the version tag pushed after.</li>
<li><strong>Valinor generates the compliance evidence an auditor asks for.</strong> <code>valinor sbom</code> produces a CycloneDX SBOM and <code>valinor compliance-evidence</code> maps your live controls onto SOC 2, ISO 27001, NIST-SSDF, and the EU CRA — evidence, never attestation.</li>
<li><strong>Valinor checks your product ships the legal documents its nature needs.</strong> The <code>compliance-check</code> gate flags a missing or incomplete privacy policy or ToS however you ship it, and <code>valinor compliance-seed</code> drops a starter — never legal advice.</li>
<li><strong>Dependency health and repo hygiene cover your whole repo.</strong> Every tracked manifest is audited uniformly, a secret scanner (gitleaks) sweeps the repo and its git history, and <code>valinor remote-hygiene</code> flags stale branches and abandoned PRs.</li>
<li><strong>Adopting Valinor on an existing repo catches contradicting settings.</strong> The opt-in <code>reconcile-check</code> gate surfaces brownfield priors that fight the methodology — each one a decision you make, with the non-negotiable invariants unwaivable.</li>
<li><strong>Two more Definition-of-DONE promises get real gates.</strong> <code>backwards-compat</code> fails any change that would break an adopted repo's public surface, and <code>logging-presence</code> reviews whether your significant operations are actually observable.</li>
<li><strong>Valinor reviews whether your client-facing prose is well-written.</strong> The <code>editorial-quality</code> standard holds your help center to Diátaxis, your CLI docs to the Google developer style, and your changelog to benefit-framed copy.</li>
<li><strong>The doctrine moves to v1.14.0.</strong> Every shipped promise now points at its real gate, dependencies must be resolved to their live latest before adoption, and releasing is reframed two-tier around the standing Release PR.</li>
<li><strong>Plus several smaller improvements</strong> — the audit sweeps deployed sub-projects, a new <code>valinor-roadmapping</code> skill generates next-best work from repo signals, integrity-class gates are code-floored to blocking, and Valinor audited itself and fixed what it found.</li>
</ul>
</details>]]></content:encoded>
            <author>Camber</author>
        </item>
        <item>
            <title><![CDATA[0.3.0]]></title>
            <link>https://www.valinorci.com/changelog/#030</link>
            <guid isPermaLink="false">https://www.valinorci.com/changelog/#030</guid>
            <pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[

<p>Releasing is now one command and your release event is verified end-to-end, two new governance standards keep your committed tree tidy and your shipped workflow templates from rotting, and an agent adopting Valinor on your repo is walked through every opt-in decision deliberately.</p>
<details><summary><h3 id="-improvements-10"> Improvements</h3></summary>
<ul>
<li><strong>Cutting a release is one command — and verified consistent.</strong> <code>valinor release --minor</code> rolls version, changelog, and notes in one transaction, and the new <code>release-integrity</code> standard's <code>valinor release-check</code> gate proves version, changelog, notes, and tag agree.</li>
<li><strong>A new gate keeps your committed repo tidy.</strong> The on-by-default <code>repo-hygiene</code> standard flags tracked build output, dependency folders, OS clutter, real <code>.env</code> secrets, and oversized files — and confirms your <code>.gitignore</code> covers your stack.</li>
<li><strong>Shipped workflow templates can't silently rot.</strong> The opt-in <code>check-workflow-templates</code> gate verifies every bundled template parses, carries a well-formed header, and references only real commands.</li>
<li><strong><code>valinor audit-report</code> turns a finished audit into a shareable report.</strong> One command renders the graded run as clean Markdown or a self-contained HTML page — deterministic, so it can never disagree with the evidence behind it.</li>
<li><strong>An adopting agent is walked through every opt-in decision.</strong> <code>valinor init</code> ends with a capabilities summary, the <code>valinor onboard</code> wizard flips them on, and the bundled <code>valinor-onboard</code> skill is the agent counterpart — all reading one authoritative list.</li>
<li><strong>Re-running <code>valinor init</code> keeps your config current.</strong> It additively weaves missing gates at their intended defaults while leaving every dial, value, and comment you wrote untouched.</li>
</ul>
</details>]]></content:encoded>
            <author>Camber</author>
        </item>
        <item>
            <title><![CDATA[0.2.3]]></title>
            <link>https://www.valinorci.com/changelog/#023</link>
            <guid isPermaLink="false">https://www.valinorci.com/changelog/#023</guid>
            <pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[

<p>Valinor now governs whether your repo stands up the <strong>right</strong> client-facing surfaces — not just whether the ones you have stay fresh. It also ships two new agent procedures and a one-command audit launcher, and weaves its governance into the files you already have.</p>
<details><summary><h3 id="-improvements-11"> Improvements</h3></summary>
<ul>
<li><strong>Valinor governs whether your repo carries the right client-facing surfaces (doctrine v1.12.0).</strong> Declare a <code>surfaces:</code> block and the opt-in <code>surface-provisioning</code> gate flags a warranted surface you haven't built — never blocking a CLI app over a missing API site.</li>
<li><strong>Your agent can ask Valinor how to plan and how to build.</strong> Two bundled action skills — <code>valinor-planning</code> and <code>valinor-execution</code> — are runnable, version-locked procedures; discover them with <code>npx valinor action-list</code>.</li>
<li><strong>Kicking off a whole-repo audit is one command.</strong> <code>valinor audit</code> prints the applicable checks, the measured inventory, and the orchestration instructions — read-only, never printing a line of your source.</li>
<li><strong>The audit measures your codebase instead of taking it on trust.</strong> <code>valinor audit-data</code> prints a deterministic inventory — stack, packages, in-scope files, real line counts — so the grade computes from reproducible facts.</li>
<li><strong><code>valinor init</code> merges into the <code>.greptile/config.json</code> or <code>claims.yml</code> you already have.</strong> It weaves by id, preserving everything you added and refreshing Valinor's entries — adopting on an existing repo no longer leaves you half-governed.</li>
<li><strong>Adoption prerequisites are spelled out honestly, everywhere you'd look.</strong> The README, the help center's Prerequisites page, and the FAQ now state plainly what Greptile review requires; the authoritative contract is the Prerequisites guide.</li>
<li><strong>The <code>site-freshness</code> discipline is a complete, opt-in standard.</strong> The rubric, the deterministic gate, and a whole-repo audit skill ship together — run the same <code>valinor site-freshness</code> gate against your own sites.</li>
<li><strong>Valinor's own sites are healthier — and right-sized.</strong> The help center and changelog moved under one <code>sites/</code> folder on current Next.js with green deploys; the standalone API-reference site retired (Valinor has no programmatic API).</li>
</ul>
</details>]]></content:encoded>
            <author>Camber</author>
        </item>
        <item>
            <title><![CDATA[0.2.2]]></title>
            <link>https://www.valinorci.com/changelog/#022</link>
            <guid isPermaLink="false">https://www.valinorci.com/changelog/#022</guid>
            <pubDate>Thu, 28 May 2026 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[

<p>The scaffolded gates workflow now works out-of-the-box for consumer repos in <strong>any</strong> GitHub org — the Distribution-v2 cross-org auth lands cleanly.</p>
<details><summary><h3 id="-improvements-12"> Improvements</h3></summary>
<ul>
<li><strong>Cross-org GitHub Packages auth is fixed.</strong> The scaffolded workflow mints its App token against the <code>cmbrcreative</code> org, so a consumer repo in any org can pull <code>@cmbrcreative/valinor</code>.</li>
<li><strong>Repositioned as "self-enforcing engineering discipline for agentic development."</strong> Rubric-driven PR review, CI gates, and continuous audit — the same ones Valinor enforces on itself.</li>
</ul>
</details>]]></content:encoded>
            <author>Camber</author>
        </item>
        <item>
            <title><![CDATA[0.2.1]]></title>
            <link>https://www.valinorci.com/changelog/#021</link>
            <guid isPermaLink="false">https://www.valinorci.com/changelog/#021</guid>
            <pubDate>Thu, 28 May 2026 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[

<p>Valinor is now installable as <code>@cmbrcreative/valinor</code> — the npm scope matches the GitHub org, and the GitHub Packages publish actually lands.</p>
<details><summary><h3 id="-improvements-13"> Improvements</h3></summary>
<ul>
<li><strong>Installable as <code>@cmbrcreative/valinor</code> from <code>0.2.1</code> forward.</strong> GitHub Packages requires the npm scope to map to a real GitHub org, so the package is renamed to match.</li>
</ul>
</details>]]></content:encoded>
            <author>Camber</author>
        </item>
        <item>
            <title><![CDATA[0.2.0]]></title>
            <link>https://www.valinorci.com/changelog/#020</link>
            <guid isPermaLink="false">https://www.valinorci.com/changelog/#020</guid>
            <pubDate>Thu, 28 May 2026 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[

<p>Valinor moves its publish target to GitHub Packages, and <code>valinor init</code> scaffolds a workflow that works for Camber consumers with no manual fixes.</p>
<details><summary><h3 id="-improvements-14"> Improvements</h3></summary>
<ul>
<li><strong>Publishes to GitHub Packages.</strong> The auto-injected token does the publish — no per-repo <code>NPM_TOKEN</code> to provision.</li>
<li><strong><code>valinor init</code> scaffolds a consumer-correct workflow out of the box.</strong> It pulls the published CLI from GitHub Packages (~5× faster CI), derives blocking behaviour from your <code>adoption.mode</code>, and degrades to a warning on a missing credential.</li>
</ul>
</details>]]></content:encoded>
            <author>Camber</author>
        </item>
        <item>
            <title><![CDATA[0.1.0 — Foundation]]></title>
            <link>https://www.valinorci.com/changelog/#010--foundation</link>
            <guid isPermaLink="false">https://www.valinorci.com/changelog/#010--foundation</guid>
            <pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[

<p>The first cut of Valinor as a layered, CI-native quality-governance product you can put on a Camber repo. Valinor is <strong>consumer #0 of its own gates</strong> — this repository is governed by the very claims, rubrics, and workflows it ships.</p>
<details><summary><h3 id="-what-you-can-do-at-010"> What you can do at 0.1.0</h3></summary>
<ul>
<li><strong>Declare your quality bar as code, and enforce it in CI.</strong> Write verifiable claims about your repo in <code>claims.yml</code> and let <code>valinor claims-verify</code> fail CI closed on any drift — sub-second, offline-safe file/grep/token checks.</li>
<li><strong>Govern branch protection and repo settings as code</strong> — keep <code>branch-protection.json</code> and <code>governance.config.yml</code> in the repo and diff them against live GitHub, so the standard travels with the code.</li>
<li><strong>Add an LLM-review rubric suite</strong> — a repo-versioned <code>.greptile/</code> library of custom review rules (silent-failure, PII-in-logs, type-design, test-quality, comment-accuracy, doc-completeness, change-narrative), each with a documented dossier.</li>
<li><strong>Run a whole-repo Codebase Audit</strong> — a composable skill system applies the rubric suite across an existing codebase and produces a graded (A–E), severity-weighted, honesty-disclosed report.</li>
<li><strong>Adopt across greenfield → deep-legacy without red CI on day one</strong> — a maturity-aware onboarding dial plus a baseline engine grandfather a repo's pre-existing debt and enforce on <em>new</em> code only.</li>
</ul></details>]]></content:encoded>
            <author>Camber</author>
        </item>
    </channel>
</rss>