AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Transition to llm-managed codebases
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Ascent scores how AI-native a team's engineering actually is. Point it at a GitHub
repository (or a whole org) and it returns a 0–100 score on a 5-level maturity ladder
across 9 weighted dimensions, with the evidence behind every number and a prioritized
route to the next level. Unlike a survey or a seat count, it reads the repository itself:
guidance files, tests, CI, docs, guardrails, commit signals, supply chain.檢視完整 README ↗Ascent scores how AI-native a team's engineering actually is. Point it at a GitHub repository (or a whole org) and it returns a 0–100 score on a 5-level maturity ladder across 9 weighted dimensions, with the evidence behind every number and a prioritized route to the next level. Unlike a survey or a seat count, it reads the repository itself: guidance files, tests, CI, docs, guardrails, commit signals, supply chain. And unlike a dashboard, it runs beside the code on your own machine and can improve it: pair a repo to a folder, scan it from disk, and let a local coding agent work the backlog on a branch you review.
The maturity report: a 0-100 score, the 5-level ladder, and the 9 weighted dimensions behind it.
Open source under AGPL-3.0. Any model, including a local one. No feature gates, no scan limits, no telemetry.
The model in five lines. Five levels: L1 Manual → L2 Assisted → L3 Augmented → L4
Integrated → L5 Autonomous. Nine dimensions (D1–D9): AI Tooling & Conventions · Automated
Testing · CI/CD & Delivery · Agentic Workflows · Documentation & Knowledge · Code Quality &
Guardrails · Commit & Velocity Signals · AI Process & Harness · Supply Chain & Security. Weights
re-balance per archetype (solo / team / org), and two axes, adoption × rigor, place a
repo in a posture quadrant (AI-Native, Fast & Ungoverned, Solid but Manual, Getting Started).
Nine deterministic analyzers produce the evidence; an LLM only calibrates and explains it,
guardbanded to the signals, and never invents a score. Full rubric:
docs/features/scanning/maturity-model.md ·
how a scan runs: docs/features/scanning/scan.md.
Prerequisite: Node 20+ (and git).
git clone https://github.com/<you>/ascent && cd ascent
npm install
npm run dev # http://localhost:3000
Paste a public GitHub repo (e.g. vercel/next.js) and scan it. That is a complete
Ascent: no key, no database, no signup. With nothing configured it runs in
deterministic mock mode, where the nine analyzers do the real work and the rubric
produces a real, reproducible score; you are missing the LLM-written nuance on top, not
the product.
Prefer one command for app + Postgres? docker compose --profile app up -d.
Open the repo in Claude Code and run /onboarding: it probes the machine, asks which
capabilities you want (model, database, GitHub, sign-in, local mode), writes .env.local, boots
the app and hands back an honest capability matrix. Its read-only core is npm run doctor,
which loads your env the way next dev does, probes Node / git / the claude CLI / the
database, and prints one row per capability (ready · fallback · off) with the single action that
would change it. It never prints a secret and always exits 0: a report, not a gate.
The same code computes the same scores in both. What differs is who operates it.
| Self-hosted | Ascent Cloud | |
|---|---|---|
| Price | Free, forever | Free tier, then paid |
| Scans | Unlimited | Metered (recovering our LLM + infra bill) |
| Features | All of them: BYOM, white-label briefings, skills, shared memory, PDF export, local mode | Tiered |
| Retention | Your disk, your policy | Per tier |
| Model | Any, including local | Ours, or bring your own |
| You operate | Postgres, the GitHub App, cron, alerts, backups | Nothing |
Plans buy operation, not capability. If the hosted version is ever better than this repository, that is a bug — open an issue.
The LLM only calibrates and explains the deterministic signals. Two of these cost nothing per token and keep your source on hardware you control:
| Want | Set |
|---|---|
A local model (Ollama, vLLM, LM Studio): $0, nothing leaves the machine | LLM_PROVIDER=local + LOCAL_LLM_BASE_URL=http://localhost:11434/v1 + LOCAL_LLM_MODEL=qwen2.5-coder:14b |
Your Claude subscription: the local claude CLI, not per-token API credits | LLM_PROVIDER=claude-cli + CLAUDE_MODEL=sonnet |
Your ChatGPT plan: the local codex CLI, not per-token API credits | LLM_PROVIDER=codex-cli (optional CODEX_MODEL) |
| Google Gemini | LLM_PROVIDER=gemini + GEMINI_API_KEY |
| OpenAI / Azure / any compatible endpoint | LLM_PROVIDER=openai + OPENAI_API_KEY (+ OPENAI_BASE_URL) |
| One key, any vendor's model | LLM_PROVIDER=openrouter + OPENROUTER_API_KEY |
| Inference inside your AWS boundary, never trained on | LLM_PROVIDER=bedrock + AWS credentials |
| Nothing at all | (mock: deterministic, keyless, fully functional) |
Use a 14B-class coder model or better on the local path; a small model scores under half
the rubric and the scan drops to its deterministic floor. Details, including the auto
resolution ladder: llm-providers.md.
A self-hosted Ascent runs on the same machine as the code it scores, so the scan loop does not
have to go through GitHub. Set ASCENT_SELF_HOSTED=1 explicitly and the Admin rail grows a
Pairing tab:
git ls-files and git log, so
local, unpushed commits count, under the same content budgets as a GitHub scan. A commit
carrying an Ascent-Resolves: <id> trailer closes its follow-up the moment it is committed,
before any push. A clean tree scans as its HEAD sha; a dirty tree scans sha-less and the report
says so. GitHub-side enrichments (PR stats, governance) are absent and the report says that too.ASCENT_AUTOPILOT=1 plus the
claude CLI on PATH, the war room (?tab=live) can dispatch a headless claude -p session at
a paired repo's top open follow-ups. It runs in an isolated git worktree on a new branch
(ascent/autopilot-<stamp>), with --permission-mode acceptEdits rather than skip-permissions,
rescans the worktree from disk, and repeats while progress lands (up to 5 cycles, 20-minute
ceiling per session, stops on a no-progress cycle). It never pushes. The branch is the
deliverable: review it, merge it. Off by default; spawning an editing agent is a deliberate
opt-in even on a box you own.POST /api/mcp is a read-only MCP server: six tools that
put a repo's standing, the gate verdict it would get, the org's open recommendations, its
declared AI stance, its proven practice shapes, and (with a separate scope) its engineering
memory one call away from the agent writing the next change. Bearer org API tokens with
mcp:read; no write tools by design, so an agent can never close its own recommendation.Grounding: docs/features/local-mode/README.md,
docs/features/org-planning/live.md,
docs/features/org-knowledge/skills.md.
| Capability | Env | Without it |
|---|---|---|
| LLM-calibrated scoring and prose | LLM_PROVIDER + its key (table above) | Fallback: mock. A real, reproducible score; only the LLM-written calibration and prose are absent. |
| Persistence: history, trends, org dashboards, usage, audit | DATABASE_URL (embedded PGlite pair for a laptop; Postgres / Aurora DSQL otherwise) | Fallback: scan-only. Reports render, nothing is saved. |
| GitHub API headroom + PR / branch-governance signals | GITHUB_TOKEN (fine-grained, read-only) | Fallback: anonymous limits (60 req/h); the scan says so when it hits them. |
| Private & org-wide repos, PR auto-gate, push re-scans | GITHUB_APP_ID + GITHUB_APP_PRIVATE_KEY + GITHUB_APP_WEBHOOK_SECRET + GITHUB_APP_SLUG (needs a database) | Hard-required: /api/app/* answer 503 naming the gap; public scans are unaffected. |
| Sign-in wall (Supabase GitHub OAuth) | NEXT_PUBLIC_SUPABASE_URL + NEXT_PUBLIC_SUPABASE_ANON_KEY | Fallback: the app runs open. Right for a personal install; configure it for a team-facing one. |
| Plans, credits, checkout (the hosted commerce path) | POLAR_ACCESS_TOKEN + POLAR_WEBHOOK_SECRET + POLAR_CREDIT_PACKS | Hidden, by design: self-host is unmetered; every plan gate is open. |
| Autoscans, digests, retention purge | CRON_SECRET + any scheduler hitting /api/cron/* | Fallback: nothing runs on its own; scans happen when a person or webhook triggers them. |
| Pairing & scan-from-disk | ASCENT_SELF_HOSTED=1 (explicit) | Hidden: the Pairing tab does not render; /api/org/local/* answer 404 on managed cloud. |
| Autopilot | ASCENT_AUTOPILOT=1 + claude CLI + a paired repo | Hidden: the dispatch control does not appear. Opt-in by design. |
Every variable, commented: .env.example. Operator's guide:
docs/SELF-HOSTING.md.
docs/README.md. The implemented product surface, feature
by feature with file references: docs/features/README.md.
Architecture: docs/ARCHITECTURE.md. HTTP API as a curl tour:
docs/API.md. Deploying the hosted product: docs/DEPLOY.md.
Roadmap: docs/ROADMAP.md. Build journal: blog.md.action.yml is a published GitHub Action; uses: <owner>/ascent@v1
with ascent-url + min-level: L3 fails a build below the bar
(gate.md).CONTRIBUTING.md · repo conventions in
AGENTS.md · the click-a-component-copy-its-path overlay:
docs/development/devinspector.md.Ascent is free and open-source software under the GNU Affero General Public License v3.0
(SPDX AGPL-3.0-only): see LICENSE. Copyright (C) 2026 Ascent authors.
Run it, read it, modify it, self-host it for any purpose including commercially, for free, forever, with no feature gates. The one obligation AGPL adds over GPL: if you run a modified version as a network service that other people use, you must offer those users the source of your modified version (§13). Using unmodified Ascent for your own org triggers nothing.
Dual licensing. The maintainers also offer Ascent under commercial terms for organizations that want to embed or redistribute it without the AGPL's source-sharing obligation; open an issue to ask. Ascent Cloud (the hosted service) runs this same codebase; you are paying for operation, not for features.
SECURITY.md