APP is a specification for organizing software around self-contained units called Cases, designed for low-context collaboration between humans and AI agents.
The naming should stay split in two layers:
AI-First Programmingis the paradigm.APPis the protocol that operationalizes that paradigm.
Current status:
- Latest released snapshot:
v1.1.6 - Working draft:
spec.md - Maturity: stable protocol baseline with TypeScript reference implementation
Language policy:
- English is the canonical language for active documentation going forward.
- Early released snapshots in
versions/are legacy Portuguese documents. - Portuguese backups are preserved under
i18n/pt-br/.
APP exists to make codebases easier to understand, extend, and operate with AI assistance by enforcing:
- a predictable filesystem structure
- self-contained capability units
- explicit execution surfaces
- low semantic coupling between capabilities
- agent-ready discovery and execution contracts
Canonical project layers:
packages/— shared project code exposed to contextual Cases through host-managed contextcore/— protocol contractscases/— business capabilitiesapps/— composition roots and runtimes
Infrastructure contracts in core/shared/app_infra_contracts.ts are minimal integration examples, not a complete infrastructure taxonomy. Host-specific concerns such as auth, db, and queue remain free for each language, project, and runtime to model.
If you are new to APP, use this order:
docs/getting-started.mddocs/create-app-project.mddocs/add-host-app.mddocs/using-packages.mddocs/migrating-existing-projects.mddocs/protocol-overview.mddocs/core-concepts.mddocs/spec-guide.mddocs/installing-app-skill.mddocs/using-app-skill.md
Quick project-local install of the /app skill:
npx @app-protocol/skill-app install all --project .Each installed skill now includes both SKILL.md and the current spec.md copy so agents can read the operational profile and the normative protocol together.
Supported host mirrors:
- Codex
- Claude
- GitHub Copilot
- Windsurf
- other Agent Skills-compatible hosts through
.agents/skills
Quick validation:
npx @app-protocol/skill-app validateQuick example run:
npm --prefix examples/react ci
npm --prefix examples/react run smokeThe React example is the active cross-client agentic reference: agent HTTP,
MCP stdio, and remote MCP over HTTP all come from the same host runtime.
The root src/ baseline now mirrors the formal agent-host contract as well,
with canonical apps/agent/ and shared MCP contracts in core/shared/.
spec.md: current working draft of the specificationversions/: versioned snapshots of released specsdocs/getting-started.md: fastest path to install/appand run the reference implementationdocs/create-app-project.md: bootstrap a new APP project without overbuilding the repositorydocs/add-host-app.md: add a new host app and choose the right runtime wiring for backend, portal, agent, worker, or lambdasdocs/using-packages.md: decide when code belongs inpackages/and how to expose it correctly through hostsdocs/migrating-existing-projects.md: adopt APP incrementally in an existing codebase without forcing a big-bang rewritedocs/installing-app-skill.md: installation, update, downgrade, uninstall, and host matrices for Codex, Claude, GitHub Copilot, Windsurf, npm, and GitHub Release tarballsdocs/using-app-skill.md: when and how to use the canonical/appskilldocs/protocol-overview.md: high-level overview of APP as a protocoldocs/core-concepts.md: canonical layers, surfaces, composition, and runtime modeldocs/spec-guide.md: how the spec, snapshots, and supporting docs fit togetherdocs/examples.md: example map and executable multi-runtime reference walkthroughsdocs/faq.md: frequent questions about APP and/appdocs/glossary.md: canonical terminologydocs/philosophy.md: conceptual framing behind AI-first programmingdocs/architectural-properties.md: APP-native architectural properties and how to interpret themdocs/architecture.md: canonical architectural diagrams and explanatory walkthroughsdocs/agentic.md: deeper notes on the agentic surface and agent host runtime contractsdocs/conformance.md: conformance levels and validation criteriadocs/development-flow.md: how the spec evolvesdocs/publishing.md: release and publishing flow for the installable/appskilldocs/skill_v6.md: current revision of the canonical/appoperational skillskills/app/: canonical installable/appskill packagetooling/skill-app/: npm-publishable installer package for the/appskill with install, update, upgrade, downgrade, uninstall, andoutdatedcommandsscripts/validate-boundaries.mjs: initial static boundary validator forcases/,packages/, andregistry.tsrfcs/: proposal process for substantive changessrc/: minimal TypeScript protocol baseline with canonicalapps/agent/,backend,portal,lambdas, and user Casesexamples/: executable APP references across React, Next.js, Node.js, Go, Deno, and TypeScript, plus additional ecosystem references underexamples/i18n/pt-br/: backup copies of native Portuguese materials
APP defines Case as the canonical unit of software organization.
Each Case:
- represents a single capability
- lives in its own folder
- may expose one or more execution surfaces
- depends on protocol contracts and receives host-selected shared packages through context
Canonical surfaces:
domain.case.tsapi.case.tsui.case.tsweb.case.tsmobile.case.tsstream.case.tsagentic.case.ts
Not every Case needs every surface.
ui.case.ts remains the general visual surface. web.case.ts and mobile.case.ts are specialized visual surfaces in the same family and may use their own concrete contracts.
stream.case.ts now uses a declarative recoveryPolicy() contract for retry and dead-letter semantics. The Case declares recovery intent; the app host validates and binds that policy to the concrete runtime during bootstrap.
For now, agentic.case.ts is optional.
If a Case exposes it, it must follow the APP agentic protocol.
APP is not a relabeling of SOLID, DDD, or Clean Architecture.
It defines its own native architectural properties around:
- capability cohesion
- semantic ownership
- explicit surface contracts
- host-owned composition roots
- protocol-first dependency inversion
- low-context navigability for humans and AI
The normative version of these properties lives in spec.md. Explanatory mappings and visual diagrams live in docs/architectural-properties.md and docs/architecture.md.
APP operates within a clear conceptual hierarchy:
AI-First Programming ← paradigm
└─ APP ← protocol
└─ Implementations ← concrete projects
AI-First Programming is the paradigm — the conceptual worldview that software must be structured for both humans and AI agents from the ground up. It is defined by five declarations: Ontology, Composition, Evolution, Cognition, and Operability.
APP is the protocol — the normative layer that operationalizes the paradigm with concrete structure, contracts, surfaces, and execution rules.
APP is the first normative expression of the paradigm, not the only one possible.
The paradigm declarations are formalized in spec.md §2. Expanded philosophical framing lives in docs/philosophy.md.
The conceptual layer is now closed enough to be public and stable. The next cycle is operational hardening and validation: strengthen formal conformance tooling, ship Canonical Capability Adapter tooling, publish an end-to-end agentic proof-of-concept, expand multi-language references, and validate the protocol through real-world adoption.
For installation details:
For release and npm publishing:
- Start with
README.md. - Read
docs/getting-started.mdif you want the shortest practical path. - Read
docs/create-app-project.mdif you want to start a new APP project. - Read
docs/migrating-existing-projects.mdif you want to adopt APP incrementally. - Read
spec.mdfor the current draft. - Compare released snapshots in
versions/. - Use
rfcs/for substantive protocol changes.
Editorial improvements can go directly to pull requests.
Substantive changes should:
- open an issue
- add an RFC when the change affects protocol semantics, structure, schema, or governance
- update the working draft in
spec.md - update supporting docs when needed
- cut a new snapshot under
versions/only when the change is accepted and release-worthy
See CONTRIBUTING.md and GOVERNANCE.md.
The next major steps for APP are:
- harden conformance tooling beyond the initial static boundary validator
- generalize the reference MCP-capable agent host into reusable capability-adapter tooling
- end-to-end agentic proof-of-concept with real agents
- expand the multi-language reference set further, especially Python and additional ecosystems
See ROADMAP.md.
This repository is licensed under Apache-2.0. See LICENSE.