Skip to content
Back to skills

Project Context Skill

ASecurity

Reusable skill for the Central Project Context — the shared, persistent knowledge base all companions read before acting and write after deciding. Defines the 14-node tree, a template per node, and the ownership matrix saying which agent writes what and when.

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 5, 2026
devopsgonodeapidatabasesecurityperformance

Works with

  • api

Security analysis

A100/100

Pro scans all 21 files and shows the line behind each finding

Scanned October 1, 2026

npx -y skills add sharmapuneet1510/awesome-prompts --skill skills --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Project Context Skill?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Project Context Skill
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sharmapuneet1510-project-context-skill/badge)](https://www.skillsdirectory.com/skills/sharmapuneet1510-project-context-skill)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: Project Context Skill
version: 1.1
description: >
  Reusable skill for the Central Project Context — the shared, persistent
  knowledge base all companions read before acting and write after deciding.
  Defines the 14-node tree, a template per node, and the ownership matrix
  saying which agent writes what and when.
applies_to: [governance, knowledge-base, all-languages]
---

# Project Context Skill — v1.1

## Quick Card

> Read this card first. Load a section below only when the task needs it.

| | |
|---|---|
| **Use when** | Any companion is about to act (read) or has had a decision approved (write) — every BA, architect, quality function |
| **Skip when** | Nothing — read-before-act is universal; writes follow the ownership matrix |
| **Inputs** | `docs/project-context/` (bootstrap it if missing) |
| **Produces** | The 14-node tree under `docs/project-context/` |
| **Steps** | 1. Read `README.md` + relevant nodes → 2. Act → 3. Owner updates its node after approval → 4. Non-owners raise gaps in `open-questions.md` |
| **Done when** | Node updated only by its owner, only after a decision; `Last updated` set |
| **Load on demand** | §Artifact Location · §Ownership Matrix · §Node Templates · §Bootstrapping · §Staleness |
| **Run report** | `html_report_skill` — adds: Nodes read · Nodes updated |
| **Pairs with** | `adr_skill`, `traceability_skill`, `context_builder_skill` |

---

## Purpose

Give every companion one shared memory. Without it each agent re-derives the
same facts from the codebase on every invocation, drifts from the others, and
loses everything the moment its context window closes.

The Project Context holds **durable knowledge** — things that stay true across
features. Feature-scoped artifacts belong in `specs/<feature-name>/`; decision
reasoning belongs in `docs/adr/`.

This skill is **internal** — called by agents, not invoked directly by users.

---

## Artifact Location

Lives in the **downstream project**, one file per node:

```text
<project-root>/docs/project-context/
├── README.md                  ← index; links every node below
├── project-overview.md
├── business-context.md
├── technical-context.md
├── architecture-context.md
├── known-behaviours.md
├── technical-debt.md
├── mvp-scope.md
├── quality/
│   ├── sanity.md
│   ├── regression.md
│   ├── integration.md
│   ├── performance.md
│   └── security.md
├── dependencies.md
├── risks.md
├── release-history.md
├── open-questions.md
└── ai-memory.md
```

---

## Ownership Matrix

The requirement does not say who maintains which node. Without an answer,
every node is either everyone's job or nobody's. This is the answer.

| Node | Owner | Written when |
|---|---|---|
| `project-overview.md` | `orchestrator` | Project init; on scope change |
| `business-context.md` | `business_analyst` | After `ba:brd` |
| `technical-context.md` | `architect` | After `architect:spec` |
| `architecture-context.md` | `architect` | After `architect:spec` |
| `known-behaviours.md` | `architect` | After `architect:analyse` finds a quirk |
| `technical-debt.md` | `architect` | On any ADR with non-empty Technical Debt |
| `mvp-scope.md` | `business_analyst` | After `ba:brd`; on scope change |
| `quality/*.md` (5) | `quality` | After `quality:qa` |
| `dependencies.md` | `implementer` | On dependency add, remove, or major bump |
| `risks.md` | `orchestrator` | At `orchestrator:plan` and `orchestrator:risk` |
| `release-history.md` | `orchestrator` | On release |
| `open-questions.md` | any | On encountering an unresolved question |
| `ai-memory.md` | any | Append-only, timestamped |

**Read-before-act:** every companion reads `README.md` plus the nodes relevant
to its function before doing anything else. **Write-after-decide:** an owner
updates its node only after a decision is approved, never on speculation.

Non-owners never edit a node directly. They raise the gap in
`open-questions.md` and let the owner resolve it.

---

## Node Templates

### `project-overview.md`

```markdown
# Project Overview
**Last updated:** <YYYY-MM-DD> by <agent>

## What this system does
<three sentences, no jargon — a new joiner must understand it>

## Who uses it
<user types and their primary job>

## Current phase
<discovery | MVP | growth | maintenance | sunset>

## Repository map
| Path | Contains |
|---|---|
```

### `business-context.md`

Sections, in this order, from requirement §4: **Goals**, **Stakeholders**,
**Business flows**, **Business rules**, **Domain glossary**, **Regulatory
constraints**, **Assumptions**.

```markdown
# Business Context
**Last updated:** <YYYY-MM-DD> by business_analyst

## Goals
- G-1: <measurable outcome, with its metric>

## Stakeholders
| Role | Name/Team | Cares about | Approves |
|---|---|---|---|

## Business Flows
### BF-1: <flow name>
<trigger → steps → outcome>

## Business Rules
| ID | Rule | Source | Enforced in |
|---|---|---|---|
| BR-1 | <rule as a testable statement> | <ticket/policy> | <component> |

## Domain Glossary
| Term | Means | Does not mean |
|---|---|---|

## Regulatory Constraints
| Constraint | Applies to | Evidence required |
|---|---|---|

## Assumptions
| ID | Assumption | If wrong, then | Validated? |
|---|---|---|---|
```

Business rules get stable `BR-n` IDs because acceptance criteria, ADRs, and
tests all cite them.

### `technical-context.md`

Sections from requirement §4: **Architecture**, **Services**, **APIs**,
**Database**, **Messaging**, **External systems**, **Deployment**,
**Observability**. Each entry names the ADR that established it where one
exists.

```markdown
# Technical Context
**Last updated:** <YYYY-MM-DD> by architect

## Architecture
<style, and the ADR that chose it>

## Services
| Service | Responsibility | Owns data | Language/Runtime |
|---|---|---|---|

## APIs
| API | Consumers | Auth | Spec | ADR |
|---|---|---|---|---|

## Database
| Store | Engine | Holds | Migration tool | ADR |
|---|---|---|---|---|

## Messaging
| Topic/Queue | Producer | Consumers | Delivery guarantee | ADR |
|---|---|---|---|---|

## External Systems
| System | Used for | Failure mode | Fallback |
|---|---|---|---|

## Deployment
<environments, pipeline, rollback mechanism>

## Observability
<metrics, traces, logs, dashboards, alert thresholds>
```

### `architecture-context.md`

The shape and the reasons: component diagram, boundaries and why they sit
where they do, cross-cutting concerns, and the constraints no future change
may violate.

````markdown
# Architecture Context
**Last updated:** <YYYY-MM-DD> by architect

## Component Diagram
```mermaid
graph TD
```

## Boundaries
| Boundary | Separates | Why here | ADR |
|---|---|---|---|

## Cross-Cutting Concerns
| Concern | Handled by | Applies to |
|---|---|---|

## Invariants
<constraints no change may violate, each with the ADR that set it>
````

### `known-behaviours.md`

From requirement §4: expected behaviour, intentional limitations, known quirks.
The distinction matters — a quirk recorded here is a decision, not a bug, and
stops the team from "fixing" it repeatedly.

```markdown
# Known Behaviours
**Last updated:** <YYYY-MM-DD> by architect

## Expected Behaviour
| ID | Behaviour | Surprising because | Correct because |
|---|---|---|---|

## Intentional Limitations
| ID | Limitation | Chosen in | Revisit when |
|---|---|---|---|

## Known Quirks
| ID | Quirk | Impact | Why not fixed |
|---|---|---|---|
```

### `technical-debt.md`

Fields from requirement §4: issue, impact, workaround, recommendation, priority.

```markdown
# Technical Debt
**Last updated:** <YYYY-MM-DD> by architect

| ID | Issue | Impact | Workaround | Recommendation | Priority | Source ADR |
|---|---|---|---|---|---|---|
| TD-1 | <what is wrong> | <what it costs, concretely> | <what we do today> | <what to do> | P1/P2/P3 | ADR-000X |
```

Every ADR with non-empty `Consequences → Technical Debt` adds a row here. Debt
recorded in an ADR but absent from this table is a traceability violation.

### `mvp-scope.md`

```markdown
# MVP / Scope
**Last updated:** <YYYY-MM-DD> by business_analyst

## In Scope
| ID | Capability | Satisfies goal | Jira |
|---|---|---|---|

## Explicitly Out of Scope
| Capability | Why excluded | Revisit when |
|---|---|---|

## Definition of Done for MVP
- [ ] <criterion>
```

The out-of-scope table matters as much as the in-scope one — it is what stops
scope creep from being re-litigated every sprint.

### `quality/*.md`

Five files, one per suite from requirement §4. Each holds **reusable
scenarios**, not one-off test cases, so they accumulate across features.

```markdown
# <Sanity | Regression | Integration | Performance | Security> Scenarios
**Last updated:** <YYYY-MM-DD> by quality

| ID | Scenario | Covers | Automated | Location | Last run |
|---|---|---|---|---|---|
| SAN-1 | <given/when/then> | BR-1, REQ-2 | yes/no | <path> | <date> |
```

Suite-specific extras:

- **sanity** — must be runnable in under five minutes; note the budget.
- **regression** — each row cites the incident or bug that created it.
- **integration** — name the external systems touched and their test doubles.
- **performance** — every row carries a numeric threshold and the load profile.
- **security** — map rows to the OWASP category they cover.

### `dependencies.md`

```markdown
# Dependencies
**Last updated:** <YYYY-MM-DD> by implementer

## Runtime
| Package | Version | Used for | Risk if unmaintained | ADR |
|---|---|---|---|---|

## Build & Dev
| Package | Version | Used for |
|---|---|---|

## External Services
| Service | SLA | Cost driver | Exit plan |
|---|---|---|---|
```

### `risks.md`

```markdown
# Risks
**Last updated:** <YYYY-MM-DD> by orchestrator

| ID | Risk | Likelihood | Impact | Mitigation | Owner | Status |
|---|---|---|---|---|---|---|
| R-1 | <what could go wrong> | H/M/L | H/M/L | <action> | <role> | open/closed |
```

### `release-history.md`

```markdown
# Release History
**Last updated:** <YYYY-MM-DD> by orchestrator

| Version | Date | Jira | ADRs applied | PRs | Notes |
|---|---|---|---|---|---|
```

This is the last hop of the traceability chain — a release row must name the
ADRs it shipped.

### `open-questions.md`

```markdown
# Open Questions
**Last updated:** <YYYY-MM-DD>

| ID | Question | Raised by | Blocks | Owner | Answer |
|---|---|---|---|---|---|
| Q-1 | <question> | <agent> | <what is blocked> | <role> | <or "open"> |
```

Any companion may append. Only the owner writes the answer. An answered
question that changed a decision must also produce an ADR.

### `ai-memory.md`

Append-only. Never edit or delete an entry — supersede it with a newer one.

```markdown
# AI Memory
Append-only. Newest last.

## <YYYY-MM-DD HH:MM> — <agent>
**Learned:** <what was discovered that is not derivable from the code>
**Why it matters:** <what it changes next time>
**Supersedes:** <earlier entry timestamp | none>
```

Record what the codebase cannot tell you: dead ends already explored, why an
obvious approach fails here, tribal knowledge from a conversation. Do **not**
record what a file read would reveal.

---

## Bootstrapping

When `docs/project-context/` does not exist, create the tree with every node
stubbed and `README.md` linking all of them. Populate `project-overview.md`
and `technical-context.md` from `context_builder_skill` output if
`docs/context/` is present. Leave the rest as templates with `Status: not yet
populated` rather than inventing content — an empty node is honest, a
hallucinated one is worse than nothing.

---

## Staleness

Every node carries a `Last updated` line. Any node untouched for more than 90
days while its owning area has changed is reported by `quality:observe` as a
staleness finding — an observation, never an automatic edit.

---

## Related

- `skills/adr_skill.md` — decisions that feed technical debt and context
- `skills/current_tech_spec_skill.md` — the current-state projection
- `skills/traceability_skill.md` — validates context links
- `skills/context_builder_skill.md` — bootstraps overview and technical context

Files in this skill

  • README.md10.2 KB
  • adr_skill.md8.4 KB
  • agent_skill_design_skill.md3.1 KB
  • apache_camel_skill.md15.5 KB
  • apache_pulsar_skill.md17.1 KB
  • ba_create_skill.md18.9 KB
  • backend_skill.md22.1 KB
  • code_documentation_skill.md13.4 KB
  • code_formatting_skill.md11.7 KB
  • code_health_skill.md9.8 KB
  • code_review_skill.md36.7 KB
  • context_builder_skill.md11.7 KB
  • current_tech_spec_skill.md6.3 KB
  • database_skill.md18.4 KB
  • debugging_skill.md3.4 KB
  • error_handling_skill.md18.4 KB
  • frontend_skill.md23.6 KB
  • java_advanced_skill.md15 KB
  • jira_html_report_skill.md15.5 KB
  • jira_incremental_spec_generator_skill.md19.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…