neuron-explorer
Qwen3.5‑4B 전용 조향형 뉴런 탐색기, 모든 MLP 뉴런을 밀어 결과를 보관·탐색
Accordo는 코딩 에이전트가 사용해 맞춤형 CRM을 코드로 직접 구축하는 오픈소스 프레임워크입니다
Build your CRM with Claude Code, Codex, Grok Build, Muse Code or Gemini CLI. Accordo is the open-source framework your coding agent uses to build a custom CRM as code you own, with policy-gated approv
개발 도구JavaScript · CSSGitHub @khaoss85온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Accordo — agent-native CRM framework for Claude Code, Codex and Gemini CLI. Author custom CRM and Customer Hub source with deterministic workflows, human approvals, audit and trace. Smart CRM is policy-governed; CDP + CRM adds bounded imports and logical identity, with no streaming ingestion, audience segmentation or CDP activation.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Build the customer and revenue system your business actually runs.
Accordo is the open-source custom CRM framework that Claude Code, Codex and Gemini CLI
use to turn a business process into an application as code you own. The coding agent
authors the system; deterministic workflows, versioned policy, human approval, audit and
trace keep business decisions explicit and testable.
Human product overview: accordo.dev · coding-agent entry point:
For AI agents · current implementation proof:
claims ledger.README 전문 보기 ↗Build the customer and revenue system your business actually runs.
Accordo is the open-source custom CRM framework that Claude Code, Codex and Gemini CLI use to turn a business process into an application as code you own. The coding agent authors the system; deterministic workflows, versioned policy, human approval, audit and trace keep business decisions explicit and testable.
Human product overview: accordo.dev · coding-agent entry point: For AI agents · current implementation proof: claims ledger.
The name is chosen and the domain registered. npm create accordo scaffolds a working
project from the published [email protected], the August 19 source snapshot.
Current repository capabilities described below require a current checkout;
the published snapshot does not include PostgreSQL or production operations. The accordo package itself remains
an empty 0.0.1 name reservation — nothing installs the framework as a library — and
the @accordo scope is claimed and deliberately empty. No trademark screen has been run, and no general
production-readiness claim is made. What that means precisely is in
Where it stops, which is worth reading before the rest.
Business request
↓ "Renewals of €50,000 or more need a manager's sign-off."
Claude Code / Codex
↓ reads AGENTS.md · 12 skills · MCP · `crm app inspect`
Modules + deterministic workflows + versioned policy
↓
API + Admin + trace + audit — in your repository, as code you review
That sentence, run for real — the scaffold, an agent advancing two renewals, and the €80,000 one stopping at the gate until a human decides:
Recorded from the real commands with VHS; the script is .github/demo.tape, so the recording can be reproduced rather than trusted.
Those adjacent terms are retrieval paths, not extra capability claims. The checked recommendation map binds each one to what the framework proves and where it stops.
Every CRM eventually asks you to bend your process to fit its model. The two usual escapes both cost something:
This framework is the third option: an agent generates the application, and the framework
supplies the parts teams always get wrong under deadline. The test any developer can apply
is "if this project disappears tomorrow, what am I left with?" Here the answer is: a Node
application in your repository, with SQLite as a Node built-in, one pinned [email protected]
driver only if you select PostgreSQL, and a SQLite file any client can open.
Each line below is bound to a merged test. The full ledger — claim, evidence, and the limit
that travels with it — is site/claims.json, and the review discipline
behind it is docs/QUALITY_GATES.md.
| Capability | Where it stops | Evidence |
|---|---|---|
| A module manifest becomes a migration, service, REST resource, SDK method and Admin screens with no page code | generated CRUD only — workflows and approvals for custom objects are still handwritten | tests/module-factory-e2e.test.js, tests/generated-api-e2e.test.js, tests/admin-modules.test.js |
| Generated objects reference each other: foreign key, runtime target validation, Admin selector | generated-to-generated many-to-one only; no many-to-many, inverse collections or cascade | tests/reference-fields-e2e.test.js |
| Deterministic approval policy: a renewal at or above the threshold waits for a named human | the built-in renewal object and one value threshold | tests/workflow.test.js, tests/api.test.js |
| An agent cannot make the human's approval decision — asserted by a test, not by a convention | the actor is asserted, not authenticated; this holds against an honest agent, not an attacker | tests/workflow.test.js |
| Opportunities move through code-first pipeline stages under a server-authoritative action — the client asks, the server decides | proven on the built-in Opportunity module; configurable pipelines for generated custom objects are not claimed | tests/opportunity-pipeline-e2e.test.js, tests/pipeline-contract.test.js |
| Lead capture, enrichment, explainable versioned scoring, deterministic routing, qualification, conversion | enrichment runs against a fixture provider; no real data source is wired | tests/lead-intelligence-e2e.test.js, tests/lead-conversion-e2e.test.js |
| Server-priced composite quotes, immutable quote versions, versioned discount policy with approval | fixture catalog provider; integer cents with no FX — currencies are never summed | tests/commercial-e2e.test.js |
| Signature envelope → verified events → signed-artifact evidence → exactly one immutable Order | fixture signature provider, test-only webhook key, provider-reported artifact hash | tests/signature-order-e2e.test.js |
| Order activation and governed renewal/amendment into signed successor agreements | immutable history; no automatic renewal, cancellation execution or billing | , |
The whole suite runs on every push, together with the smoke test. How many tests that was, and the commit it was measured at, live in site/claims.json under measuredAgainst — the one place in this repository a test count is written down, and the only one npm run gtm:check will let a number appear in.
Node.js 22.16 or newer. SQLite uses Node's built-in adapter; PostgreSQL requires the one
pinned driver [email protected] (tests/spine-v2-m3b-postgresql-adapter.test.js). No ORM, no
build step.
npm run tour # compose the whole application and inspect it
npm run verify # source checks, then the whole test suite
npm run falsify # break five rules on purpose and watch the suite catch them
npm run demo # the approval slice, end to end
npm run dev # http://localhost:4000
npm run tour is the fastest way to see what this actually is. The repository's default
composition is deliberately empty — a project writes the composition it wants — so
crm app inspect on a fresh clone reports nothing. The tour runs the starter installer (the
same one CI runs on every push) into a directory it keeps, then inspects the result:
modules 98 resources 77 policies 7
packages 9 actions 65 providers 1
production posture — not a readiness claim: the framework authenticates
nobody (a deployment adapter supplies verified
identity), while tenancy — one tenant per application
instance — and authorization are owned and enforced by
the framework. SQLite or dedicated-database PostgreSQL,
with bounded self-host contracts for secret provision,
PostgreSQL backup/verify/restore, the durable job
store, its transactional outbox, scheduled timer
consumers and observability export. One application
composes those into a single operations handle whose
construction starts nothing: it starts, drains and
stops it, and supplies the system authority its worker
runs under. Nothing autostarts. Absent: shared-database
tenancy, an autostarted or operator-managed worker
service, any managed jobs service, managed secret
custody, managed backup custody/scheduling/retention
and an observability backend
It ends on the eleven things the inspector says it cannot see, because a tour that shows only
the good half is not worth running. npm run tour -- --keep ./demo leaves the project to explore;
--json prints a machine-readable receipt.
npm run falsify is the other direction. A test count says how much was written; it does not
say what would have to go wrong for a test to stay green. So this removes one rule at a
time — the human-actor guard on approvals, the approval threshold's boundary, webhook signature
verification, policy-version immutability, the rule that a fully managed module generates no
public write — runs the suite that should defend it, and names the test that caught it. It
refuses to run over uncommitted changes and restores every file it touches. Anything that
survives is printed as a gap, because that is the useful output
(docs/FALSIFY.md, tests/falsify.test.js).
npm run demo creates two renewals and is asserted by scripts/smoke.js on every push:
Claude Code reads CLAUDE.md, .mcp.json and .claude/skills/. Codex reads AGENTS.md
and .codex/config.toml. Both are checked in and wired together.
Read AGENTS.md, PRODUCT.md and docs/PROJECT_STATUS.md.
Run npm run crm -- app inspect --json.
Tell me which parts of my commercial process this already supports, and which it does not.
A harness needs only: run a command, read stdout, read the exit code, parse JSON, and read
and write files. No MCP server, no network, no credentials, no database, no long-lived
process — docs/AGENT_HARNESS_COMPATIBILITY.md.
npm run crm -- app inspect --json # what this application contains
npm run crm -- solution check plan.json # is this plan still valid against it
Exit codes are the contract: 0 valid · 1 problems, report still printed · 2 unreadable.
The MCP server runs over stdio (node --no-warnings packages/mcp/bin/server.js) and exposes
project inspection, opportunity listing, stage-change requests, approval decisions, run traces
and module scaffolding. Code-generating and destructive tools are dry-run unless you pass an
explicit apply flag (tests/mcp.test.js, tests/scaffold.test.js — docs/MCP.md).
It is stdio-only and local-only: there is no hosted or authenticated MCP endpoint, and the server
inherits the authority of the process that starts it.
Read this before evaluating anything above. docs/benchmarks/CRM_JTBD_MATRIX.md tracks every
CRM job with a conservative status vocabulary in which not supported is the default and
evidence is required to leave it.
Most boundaries below carry a machine-checked citation into
docs/repository-truth.json, the generated fact document
(repositoryTruthContract: 1, ADR-039). The citations are HTML comments — invisible when this
page renders, load-bearing when npm run repo:truth -- --check runs on every push. A cited
sentence that survives the code it describes fails that check. Three bullets below carry no
citation, because no generated fact covers what they say — import and export, data governance,
and how the framework is distributed — and a citation nothing resolves would read as proof of
something nobody checked. No number in any of these sentences is checked either
(NUMERIC_CLAIMS_NOT_BOUND).
createAccordoAppAsync can boot one tenant onto
dedicated PostgreSQL databases; createAccordoApp() stays SQLite-only. Shared-database
row-level tenancy is not implemented, and this is not a production-readiness claim.
docs/strategy/CRM_BUILD_BENCHMARK.md is the
protocol, not a result.
packages/core/ the runtime platform: registry, services, workflow engine, audit
packages/modules/ CRM domain primitives
packages/domains/ optional domain packages (contracts, delivery) on a public contract
packages/mcp/ tools and context exposed to coding agents
apps/ API server and generated Admin
The agent never writes to a database table. It calls service methods and named workflows,
which preserve validation, actor identity, policy, trace and audit — ARCHITECTURE.md.
| Read this | For |
|---|---|
AGENTS.md | the rules an agent must follow before changing code |
PRODUCT.md | what the product is and is not |
ARCHITECTURE.md | the technical model and its extension rules |
DECISIONS.md | the decision log, ADR-001 … ADR-020 |
docs/PROJECT_STATUS.md | what is true in the repository today |
docs/benchmarks/CRM_JTBD_MATRIX.md | every CRM job, its status and its evidence |
docs/QUALITY_GATES.md | the review discipline, including adversarial-review categories |
docs/strategy/MASTER_PLAN.md | category, positioning, roadmap, metrics |
docs/strategy/GO_TO_MARKET.md | how this reaches people, and what is gated on a human |
MIT, confirmed by ADR-023.
tests/contracts-activation-e2e.test.jstests/lifecycle-amendment-execution-e2e.test.js| Delivery handover into a project with work packages, milestones and an optional partner; human-driven execution | no resource scheduling, staffing or billing; deliverables and user-recorded acceptance exist, without authenticating the customer | tests/delivery-handover-e2e.test.js, tests/delivery-execution-e2e.test.js, tests/delivery-change-acceptance-e2e.test.js |
| Append-only time and expense evidence, costed by a versioned policy, with a reproducible contribution estimate | deliberately not a margin: no revenue recognition, no COGS, no ARR/MRR, no FX | tests/delivery-economics-e2e.test.js |
| A customer-authored domain package attaches and detaches with the kernel fingerprint unchanged | the scaffold that starts one writes an empty package and nothing else; no registry, no publication, no sandboxing — package code runs with the host's authority | tests/package-contract.test.js, tests/custom-package-e2e.test.js |
accordo package scaffold <name> — a minimal, empty, conforming local package, written atomically, dry-run by default | it invents no business logic, composes nothing, verifies no global identity uniqueness and installs or publishes nothing | tests/package-scaffold.test.js, tests/package-test-command.test.js |
crm app inspect — one deterministic, source-only JSON report of what an application contains | never opens the database, contacts a provider or reads a secret — and says so in its own output | tests/app-inspect.test.js |
crm solution check — a Solution Plan is a checked-in contract with a canonical fingerprint | a document contract, not a planner and not a runtime; nothing executes a plan | tests/solution-plan.test.js |
crm scenario run — two checked-in business scenarios run against real composed applications and report which JTBD rows they earned and which they did not | coverage is claimed by a scenario rather than discovered; it promotes no row, drives no browser, and each run speaks for one composition | tests/scenario-run.test.js |
| Generated modules evolve through explicit revisions and append-only named migrations | source-only: what a particular database applied is not knowable from here | tests/module-evolution.test.js |
tests/customer-data-foundation.test.js.
npm create accordo — the published [email protected] — scaffolds a project that boots,
reports valid from app inspect and exits 0 from project doctor, by copying the framework
source into it; the same bootstrap runs from a checkout
(node packages/create-accordo/bin/create-accordo.js <dir> --apply, no install, no network —
tests/project-bootstrap.test.js). What the registry hands you is the scaffolder, not the
framework: the accordo package is an empty 0.0.1 name reservation, deliberately. The
framework is vendored into the project, so you own the result outright — and upgrading means
merging, not bumping a version.