# Openproject Foundation

> Use when porting OpenProject's service-object mutation spine — result objects with dependent trees, contract-gated stage ladders, transactional/advisory-locked execution contexts, field-level permission-reduced writability, system-vs-user change attribution, and the work-package attribute/update cascade. Source code and direct tests are ground truth; references carry decisive excerpts and graph retrieval.

- Skill: `ryan-brosas/openproject-foundation` (Agent Skill, multi-file: 10 files)
- Install (CLI): `npx skillmds@latest add ryan-brosas/openproject-foundation`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ryan-brosas/openproject-foundation/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ryan-brosas (https://skillmd.com/u/ryan-brosas)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ryan-brosas/openproject-foundation

---

# OpenProject: mutation-kernel foundation

## Foundation contract

This is a cold, source-specific foundation, not an operational procedure. It is
historical, revision-pinned evidence rather than timeless guidance. Current
project source, tests, requirements, and runtime behavior outrank this
projection and decide what ships.

## Provenance and revision

- Source record: `openproject`; portable upstream identity, license, coverage caveats, and retrieval history are preserved in the index.
- Recorded revision: `dev@9579995645b707626b8de36fbaf33dfda6c04b9e`.
- Full provenance, coverage caveats, boundaries, and preserved evidence:
  `references/index.md`.

## Topic map

- Representative topics: Result aggregation; Callable envelope; Stage ladder;
  Execution context; Field-level authz; Change attribution; WP attributes;
  Update cascade.
- Scope and retrieval questions: `references/index.md#use-this-for`.
- Complete capsule chooser: `references/index.md#load-the-matching-source-dump`.
- Detailed grouped map: `references/index.md#capsule-map`.
- Source limitations and portability boundaries: `references/index.md#boundaries`.

## Retrieval

Open the index, choose one capsule matching the active question, and load only
that capsule. Revalidate its cited source and revision before relying on it. Do
not bulk-load the inventory, treat historical claims as current truth, or apply
this foundation as a procedure.

