agjan
v0.0.28
Published
Agentic engineering harness for AI coding agents: role agents, human approval gates, independent review and CI-enforced checks. SAP BTP first.
Maintainers
Readme
agjan
An agentic engineering harness. It runs AI coding agents like an engineering team (a main agent, an independent reviewer and a QA tester) under your approval gates and checks that CI enforces. Spec-driven, starting with SAP BTP: CAP, Fiori elements and UI5.
Status: closed beta (0.x). The source repository is not public yet; it will open soon. Until then, links to the repository and to other documents do not work on npm; the user guide ships in the package (
node_modules/agjan/docs/guide.mdafter installing). The workflow works end to end with Claude Code and the GitHub Copilot CLI; VS Code and the role skills' conventions are still being completed. Formats may change between 0.x versions.
What it does
agjan guides an AI coding agent through Spec, Design, Build and Verify:
- You hold the gates. You approve the spec and the design in a terminal, and accept
the verified result there too (
npx agjan approve verify). Approvals are stamped by a script with a UTC time and a content hash; if an approved document changes, the approval is stale. - An isolated reviewer checks every stage. It runs as a separate agent with read access and two agjan tools only, and records its own findings. Blockers stop the gate.
- Scripts enforce the rules, not the model.
agjan checkverifies stamps, scope (only the approved task paths change), acceptance criteria covered by tests that passed on this very change (agjan testrecords the run), and fresh reviews, in a pre-commit hook and in CI. - Cost is measurable.
agjan reportshows time per step, waiting time at gates, and the actual models and tokens from the host's own session records.
The first domain is SAP BTP development: CAP Node.js, SAP Fiori elements and freestyle UI5 in TypeScript, and BTP architecture.
Why agjan
agjan is inspired by public spec-driven development tools and by the agent-marketplace project. I started it to meet the requirements of SAP development projects. The other tools are mostly generic: their skills cover many unrelated areas, or their process is heavier than a project needs. agjan is built for SAP environments, with only as much process as the gates and checks require. It starts with role skills for CAP, Fiori and BTP and is meant to grow with further technical and functional SAP skills.
Quick start
Requirements: Node.js 22 or later, git, and Claude Code and/or the GitHub Copilot CLI. Linux, macOS or Windows.
npm install --global agjan
agjan init my-project --hosts claude-code,copilot # or "agjan init ." in an existing folder
cd my-project
npx agjan doctoragjan init my-project creates the folder, the git repository (branch main) and a
package.json, pins this version of agjan in its devDependencies and installs it, then
sets the project up. Without --hosts it asks which hosts to set up. The global agjan
only starts things: init, --help and --version run in it, and every other command
runs in the version the project pins, so a project never depends on the global version.
After cloning a project, the first command offers to install the pinned version.
Open the project in your agent host, trust the folder, and start a feature:
/agjan-spec Clerks want to filter the orders list by status.When the agent asks for approval, review the files and approve in your terminal:
npx agjan status
npx agjan approve spec designContinue with /agjan-build and /agjan-verify. Small changes: /agjan-fix. An
existing application: /agjan-map once. A decision to prepare before building (options,
trade-offs, a recommendation you approve, no code): /agjan-discover. A question about CAP,
Fiori or BTP, in general or about files you name: /agjan-ask.
Documentation
- User guide: setup, workflow, commands, configuration, hosts, CI, troubleshooting
- Workflows, teams, personas and skills: the terms and how they fit together
- Design: every decision and its reason
- Host experiments: what was verified on each host, and how
- End-to-end run: a guided trial on a sample CAP and Fiori app
Approvals are a guardrail, not a proof
Approval commands are meant for humans in a terminal. agjan makes it hard for an agent
to run them (instructions, deny rules and hooks, and a confirmation read from the
terminal), but a model with unrestricted shell access could in principle get around
that. The trust boundary is the reviewed merge of the pull request; branch protection
with the required agjan-check status and CODEOWNERS are the recommended hardening
(guide). See section 9.4
of the design.
Contributing
See CONTRIBUTING.md. Security issues: see SECURITY.md.
License
Apache-2.0. See NOTICE.
Trademarks
agjan is an independent open-source project. It is not affiliated with, sponsored by or endorsed by SAP SE. SAP, SAP BTP, SAP Fiori and SAPUI5 are trademarks or registered trademarks of SAP SE in Germany and other countries. GitHub Copilot is a trademark of GitHub, Inc.; Claude is a trademark of Anthropic, PBC. All other trademarks are the property of their respective owners.
