ai-startup-skills
AI 제품을 만드는 스타트업을 위한 7단계 에이전트 스킬: 검증 → 비즈플랜 → 정책 → 로드쇼 → 고객 확보 → 가격 책정 → 등록
곱셈을 강조, 사무실 없이 분야가 확장. 오픈소스이며 자금을 보관하지 않고 기부금도 가져가지 않는다
Multiplication, not addition. The field grows without the office growing with it. Open source; never holds funds; takes no cut of the gift.
기타Python · Go TemplateGitHub @project-timothy온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Business-agnostic back-office agent engine: idempotent jobs, a git-backed ledger, tenants as pure configuration.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A business-agnostic back-office agent engine. Every back-office job is an idempotent CLI invocation against a git-backed ledger, every agent is a brief plus deterministic code versioned together, every tenant is pure configuration, and every past incident is a regression test.
It ships twelve agents and their jobs: accounts payable (ap), accounts
receivable remittance (ar), month-end close, expenses, timesheets,
mail, deadlines, projects, policy (a handbook's rules, each in force
only on a person's yes), a weekly brief, approval routing, and demo; run
uv run engine agents for the full list. Beside the engine sits an
independent auditor that recomputes truth from ground sources every night
and imports nothing from the engine.
Read these first, in order:
CLAUDE.md: the engine invariants and the operating rules.docs/boundary-rules.md: what is code and what is a model.docs/archetypes.md: the business shapes a tenant can take.docs/install.md: running it for a real business, in one container.CONTRIBUTING.md: licensing, the gates, and who merges.brew install uv on macOS).uv python install 3.12 if not).cd into it.uv sync — creates the virtual env and installs pinned dependencies from uv.lock.
Add --extra claude on a host that drives model jobs through Claude Code (the
Claude Agent SDK); a host on API keys alone does not need it, and the suite passes without it.uv run engine run demo demo ingest.uv run engine run demo demo ingest — reports noop (idempotent).uv run engine doctor demo --create-folders makes the
demo-data/ tree its tenant.toml names (the container does this at first boot).
Now uv run engine run demo ap intake runs, with nothing to intake until you drop
a PDF in demo-data/inbox/. Run uv run engine doctor demo again: it still
names one item missing, the ledger remote, which only a host that pushes
its ledger every night needs (docs/install.md step 5). The demo needs
nothing else, and every skip line is a lane the demo never connects.uv run pytest.uv run ruff check . and check the tenant boundary: uv run python -m core.evals.bleedthrough_lint.That is the whole loop. No secrets, no network, no cloud accounts are needed to run the demo.
engine run <tenant> demo ingest exercises the entire pipe: CLI dispatch,
tenant config loading, a ledger write, idempotency, a structured result object,
and a git commit. One tenant ships: demo, a synthetic tenant that proves the engine is
generic; engine init renders a real one (docs/install.md). The ledger for each run lands under
./.ledger/<tenant>/ by default (override with --ledger-dir or
$ENGINE_LEDGER_ROOT); it is its own git repo and is gitignored from this code
repo.
Every engine command takes --help. The owner-facing ones need a tenant.
| Command | What it does |
|---|---|
uv run engine run <tenant> <agent> <job> [--shadow] [--json] | Run a job against a tenant's ledger |
uv run engine agents | List discoverable agents and their jobs |
uv run engine init <slug> [--archetype A|B|C] [--shape SHAPE] | Create a tenant from an archetype template, with its kit (docs/tenant-kit-design.md) |
uv run engine onboard <slug> [--answer ID=VALUE] [--apply] | The onboarding conversation as JSON for an agent: next question, record answers, then create the tenant and run doctor |
uv run engine voice-check <tenant> <file> [--register NAME] | Check a draft against the tenant's kit/voice.toml: spelling, banned words, glossary, register |
uv run engine doctor <tenant> | Report what this host is missing: secrets, folders, the ledger and its remote, the scheduler |
uv run engine schedule <tenant> | Render this host's crontab from [host.schedule] |
uv run engine queue ... | Review the approval queue |
uv run engine tracker <tenant> <person> [--domain d] | A token for one person's phone tracker app; the box keeps their drives as miles and times only |
uv run engine notices <tenant> | The emails the box should send (a month ready, a yes waiting), one JSON line each, for doorkeeper send-notices |
uv run engine status <tenant> ... | Owner write-back: mark an invoice scheduled or paid |
uv run engine status-page <tenant> | Render the read-only status page |
uv run engine close-preflight <tenant> | Month-end close checklist; exits 0 OK, 1 WARN, 2 BLOCK |
uv run engine sweep <tenant> | Read-only: invoice-like files the engine has not booked |
uv run engine identify ... | Record an unprocessed file as an invoice (manual entry) |
uv run engine dismiss ... | Mark an unprocessed file as not an invoice |
uv run engine shadow-diff ... |
core/engine/ runner, CLI, tenant config, RunResult contract, RunKey builder, doctor, init
core/ledger/ SQLite schema + migrations, JSONL event log, git-commit wrapper
core/agents/ one directory per agent (brief.md + jobs.py + schema.py + evals/)
core/contracts/ the plug shapes adapters are built against; Apache-2.0, its own LICENSE
core/adapters/ the outside systems: bank files, mail and calendar, the accounting API
core/llm/ the model seam: gateway, policy, agentic runner, eval sets
core/tools/ the read-only tool catalog served over MCP
core/evals/ eval harness, seed incident regressions, bleed-through lint
core/learning/ incident-to-eval converter
auditor/ the independent nightly auditor: own CLI, store, and lenses; imports nothing from core/
evals/ the red tree: one failing eval per merged proposal, outside pytest's testpaths
skills/ skills the agentic runner executes (the morning audit triage)
host/ the container's entrypoint, crontab template, and secrets loader
scripts/ scheduled wrappers, the build-lane helper, and one-time accounting-API setup
tenants/ demo/ and _templates/ only; a real tenant lives in its own repository
tests/ unit tests; tests/skills/ runs the skill contracts with fixtures
docs/ design notes, install.md, lessons.md, decisions/ (one file per decision)
| Read-only parity report: engine shadow rows vs a legacy ledger |
uv run engine jobs ... | The job ledger: bounded retries (engine jobs resume) |
uv run engine runner ... | Agentic sessions: engine runner run <tenant> <skill path> |
uv run engine mail ... | Owner acts on the tenant mailbox connection |
uv run engine mcp <tenant> [--as <person>] | Serve the read-only tools over MCP on stdio, for a chat client; --as answers as one person under authority.toml |
uv run engine mcp <tenant> --http --resource <url> --tokens <file> | Serve the same tools on one HTTP endpoint for a hosted box, each request answered as the person its bearer token signs in |
uv run engine door-token <tenant> <person> --tokens <file> | Make an invitation token for one person; printed once, the file keeps only its hash |
uv run engine mcp <tenant> --http --resource <url> --authorization-server <issuer> --introspect <url> --introspect-secret <file> | The same endpoint, signed in through the box's sign-in service (doorkeeper), which the engine asks who each token is (RFC 7662) |
uv run engine mcp --onboarding | Serve the onboarding conversation over MCP, before any tenant exists; apply needs the person's yes |
uv run engine capabilities [--format json] | What Tim can do today, built from the code: the tools, the setup questions, each lane in one plain sentence, and what is not built yet |
uv run engine faq [--format json] | The questions people ask about Tim, with Tim's answers; held to the door's tools by a test (docs/tim-faq.md) |
uv run engine rules <tenant> | The ministry's policy rules, highest layer first, each in Tim's words with the page it came from; a lower layer may only make a rule stricter (core/policy) |
uv run engine evals ... | Score a model on a job and write the results file the tenant config gate reads |
uv run auditor run <tenant> [--local-only] | The independent nightly audit (auditor --help for the rest) |
uv run pytest | Unit tests (tests/) + evals (core/**/evals/) |
uv run ruff check . / uv run ruff format --check . | Lint / format check |
uv run python -m core.evals.bleedthrough_lint | Fail if any tenant token leaked into core/ |
uv run python -m auditor.evals.independence_lint | Fail if anything under auditor/ imports the engine |