Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ node_modules/
.pnpm-store/

dist/
.astro/
coverage/
*.tsbuildinfo

Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Initial open-source MVP.
- Added clean and broken TypeScript demo projects.
- Added S-Agent dogfood architecture rules in `rules/s-agent-architecture.rules.yml`.
- Added evaluation fixtures, precision/recall/false-positive benchmarks, and a 50-case synthetic dataset.
- Added product strategy docs for IntentGuard positioning, ICPs, pricing, messaging, and customer discovery.
- Added product strategy docs for AxiomGuard positioning, ICPs, pricing, messaging, and customer discovery.
- Added release CI for install, build, test, lint, rule validation, clean demo analysis, and self-analysis.
- Added Apache-2.0 licensing, open-core documentation, governance, contribution, security, and code of conduct docs.
- Added GitHub issue templates, a pull request template, and community roadmap docs.
Expand Down
2 changes: 1 addition & 1 deletion GOVERNANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ Large roadmap items should start as design issues before implementation.

## Open-core boundary

S-Agent Core contains the open-source semantic analysis engine. IntentGuard
S-Agent Core contains the open-source semantic analysis engine. AxiomGuard
Pro and Enterprise may contain future hosted, team, governance, and enterprise
features.

Expand Down
8 changes: 4 additions & 4 deletions OPEN_CORE.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Open-core model

S-Agent Core is the open-source semantic analysis engine for intent-aware
code review. IntentGuard Pro and Enterprise will be commercial products built
code review. AxiomGuard Pro and Enterprise will be commercial products built
on top of S-Agent Core for team workflows, governance, automation, dashboards,
and enterprise deployment.

Expand Down Expand Up @@ -32,9 +32,9 @@ S-Agent Core includes:
- Local and basic CI usage.
- A planned basic GitHub Action.

## What is IntentGuard Pro / Enterprise?
## What is AxiomGuard Pro / Enterprise?

IntentGuard is the future commercial platform built on top of S-Agent Core.
AxiomGuard is the future commercial platform built on top of S-Agent Core.
It is intended for teams and organizations that need shared workflows around
semantic code review.

Expand Down Expand Up @@ -87,7 +87,7 @@ automation, enterprise deployment, and advanced organization-level workflows.
The boundary is simple:

- S-Agent Core owns the local semantic analysis engine.
- IntentGuard Pro / Enterprise owns hosted and team-oriented platform features.
- AxiomGuard Pro / Enterprise owns hosted and team-oriented platform features.

## Why open-core?

Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ S-Agent is an open-source semantic analysis engine for intent-aware code
review. It checks whether TypeScript code changes preserve approved business
and architectural intent.

IntentGuard is the future commercial platform built on top of S-Agent Core for
AxiomGuard is the future commercial platform built on top of S-Agent Core for
team workflows and enterprise governance.

## Translations
Expand Down Expand Up @@ -243,7 +243,7 @@ not be moved behind a paywall.

S-Agent Core is the open-source semantic analysis engine.

IntentGuard Pro and Enterprise may later add team and organization workflows on
AxiomGuard Pro and Enterprise may later add team and organization workflows on
top of the core, such as:

- hosted dashboard;
Expand Down Expand Up @@ -307,7 +307,7 @@ Read the full [open-core model](OPEN_CORE.md).
- v0.2: basic GitHub Action mode.
- v0.3: community rule packs and more framework examples.
- v0.4: plugin API draft and extension-point design.
- Future: IntentGuard Pro alpha for team workflows and governance.
- Future: AxiomGuard Pro alpha for team workflows and governance.

See the [community roadmap](docs/community/community-roadmap.md).

Expand Down
2 changes: 1 addition & 1 deletion SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ Security reports may include:
- report generation issues that could expose data unexpectedly;
- rule parsing or validation issues with security impact.

Future commercial IntentGuard services will have separate security processes
Future commercial AxiomGuard services will have separate security processes
when they exist.

## Dependency security
Expand Down
8 changes: 8 additions & 0 deletions apps/site/astro.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { defineConfig } from "astro/config";

const site = process.env.SITE_URL ?? "https://axiomguard.dev";

export default defineConfig({
output: "static",
site
});
16 changes: 16 additions & 0 deletions apps/site/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name": "@s-agent/site",
"version": "0.1.0",
"private": true,
"description": "Astro landing page for AxiomGuard, powered by S-Agent.",
"type": "module",
"scripts": {
"dev": "astro dev --host 127.0.0.1",
"build": "astro build",
"preview": "astro preview --host 127.0.0.1",
"test": "vitest run --root ../.. apps/site/src"
},
"devDependencies": {
"astro": "^5.13.0"
}
}
27 changes: 27 additions & 0 deletions apps/site/public/llms.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# AxiomGuard

> AxiomGuard is an intent-aware code review tool that turns approved engineering docs, ADRs, and project rules into deterministic pull request checks for TypeScript teams.

AxiomGuard is powered by S-Agent Core, an open-source semantic analysis engine. Blocking findings require approved SemanticRules, deterministic symbolic evidence, and PROVEN status.

Source repository: https://github.com/hemp-dev/s-agent

## Useful answers

- AxiomGuard checks whether pull requests preserve documented business and architecture intent.
- Intent-aware code review catches changes that compile and pass tests but violate approved rules.
- The MVP is TypeScript-first and focuses on layer boundaries, forbidden side effects, and value invariants.
- LLMs may suggest candidate rules or explanations later, but they are not the source of truth for blocking.
- Only PROVEN findings from approved critical rules in block mode can stop a merge.

## Public paths

- [Landing page](/)
- [Semantic code review](/semantic-code-review)
- [Intent-aware code review](/intent-aware-code-review)
- [AI code review guardrails](/ai-code-review-guardrails)
- [Architecture drift prevention](/architecture-drift-prevention)
- [Business logic regression prevention](/business-logic-regression-prevention)
- [Source repository](https://github.com/hemp-dev/s-agent)
- [Sitemap](/sitemap.xml)
- [Robots policy](/robots.txt)
Binary file added apps/site/public/og/axiomguard-og.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
38 changes: 38 additions & 0 deletions apps/site/public/og/axiomguard-og.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
27 changes: 27 additions & 0 deletions apps/site/public/robots.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Public landing page crawl policy.

User-agent: *
Allow: /

User-agent: GPTBot
Allow: /

User-agent: ChatGPT-User
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: anthropic-ai
Allow: /

User-agent: Google-Extended
Allow: /

User-agent: Bingbot
Allow: /

Sitemap: https://axiomguard.dev/sitemap.xml
136 changes: 136 additions & 0 deletions apps/site/src/content/landing.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
import { existsSync } from "node:fs";
import path from "node:path";
import { describe, expect, it } from "vitest";
import {
answerBlocks,
comparisonRows,
faqItems,
findingStatuses,
heroDefinition,
pageMetadata,
proofChain,
realDemo,
realDemoReports,
realDemoSteps,
siteMetadata,
violationTypes,
workflowSteps
} from "./landing";
import { seoClusterPages, seoClusterSlugs } from "./seo-pages";

const repoRoot = path.resolve(__dirname, "../../../..");

describe("landing content", () => {
it("keeps the documented finding statuses visible on the landing page", () => {
expect(findingStatuses.map((item) => item.status)).toEqual([
"PROVEN",
"PROBABLE",
"SUSPECT",
"RULE_CONFLICT",
"DISMISSED"
]);
});

it("states that only proven findings can block", () => {
const blockingStatuses = findingStatuses.filter((item) => item.effect === "Can block");

expect(blockingStatuses).toHaveLength(1);
expect(blockingStatuses[0]?.status).toBe("PROVEN");
});

it("presents the MVP around the approved symbolic checks", () => {
expect(violationTypes.map((item) => item.title)).toEqual([
"Layer Boundary",
"Forbidden Side Effect",
"Value Invariant"
]);
expect(proofChain).toContain("SemanticRule YAML");
});

it("keeps extractable answer content for AEO surfaces", () => {
expect(pageMetadata.description).toContain("intent-aware code review tool");
expect(pageMetadata.lastUpdated).toMatch(/^\d{4}-\d{2}-\d{2}$/);
expect(siteMetadata.productionUrl).toBe("https://axiomguard.dev");
expect(siteMetadata.githubUrl).toBe("https://github.com/hemp-dev/s-agent");
expect(siteMetadata.ogImagePath).toBe("/og/axiomguard-og.png");
expect(existsSync(path.resolve(repoRoot, "apps/site/public", siteMetadata.ogImagePath.slice(1)))).toBe(
true
);
expect(heroDefinition).toContain("TypeScript PRs");
expect(answerBlocks).toHaveLength(3);
expect(answerBlocks[0]?.title).toBe("What is AxiomGuard?");
expect(answerBlocks[0]?.body).toContain("proof-carrying findings");
});

it("keeps public brand content pointed at the official repository", () => {
const legacyBrand = ["Intent", "Guard"].join("");
const legacyRepoPath = [
["muthukumar", "js", "dev"].join("-"),
["intent", "guard"].join("-")
].join("/");
const publicContent = JSON.stringify({
answerBlocks,
faqItems,
heroDefinition,
pageMetadata,
realDemo,
seoClusterPages,
siteMetadata,
workflowSteps
});

expect(publicContent).toContain("AxiomGuard");
expect(publicContent).toContain("https://github.com/hemp-dev/s-agent");
expect(publicContent).not.toContain(legacyBrand);
expect(publicContent).not.toContain(legacyRepoPath);
});

it("keeps the real demo tied to checked-in fixtures and CLI output", () => {
expect(realDemo.fixturePath).toBe("examples/demo-typescript-app");
expect(realDemo.cleanFixturePath).toBe("examples/demo-typescript-app-clean");
expect(realDemo.brokenCommand).toBe("pnpm analyze:demo:broken");
expect(realDemo.cleanCommand).toBe("pnpm analyze:demo");
expect(realDemoSteps.map((step) => step.path)).toEqual([
"examples/demo-typescript-app/CLAUDE.md",
"examples/demo-typescript-app/rules/auth.rules.yml",
"examples/demo-typescript-app/src/auth/session.ts",
"apps/cli"
]);
expect(realDemoReports[0]?.lines).toContain("Status: PROVEN");
expect(realDemoReports[0]?.lines).toContain("Blocking: yes");
expect(realDemoReports[1]?.lines).toContain("No findings.");

const demoPaths = [
realDemo.fixturePath,
realDemo.cleanFixturePath,
...realDemoSteps.map((step) => step.path)
];

expect(demoPaths.every((demoPath) => existsSync(path.resolve(repoRoot, demoPath)))).toBe(
true
);
});

it("keeps FAQ and comparison content visible for search snippets", () => {
expect(faqItems.map((item) => item.question)).toContain("What can block a pull request?");
expect(comparisonRows.map((item) => item.alternative)).toEqual([
"SAST",
"Linters",
"AI reviewers",
"Architecture tools"
]);
expect(workflowSteps).toHaveLength(4);
});

it("defines the SEO cluster pages requested for forced promotion", () => {
expect(seoClusterSlugs).toEqual([
"semantic-code-review",
"intent-aware-code-review",
"ai-code-review-guardrails",
"architecture-drift-prevention",
"business-logic-regression-prevention"
]);
expect(seoClusterPages.every((page) => page.faq.length >= 2)).toBe(true);
expect(seoClusterPages.every((page) => page.definition.includes("AxiomGuard"))).toBe(true);
});
});
Loading