project-object
Session memory that compounds - remember decisions, patterns, and corrections across AI coding sessions. Includes standards injection for consistent code quality.
Best use case
project-object is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Session memory that compounds - remember decisions, patterns, and corrections across AI coding sessions. Includes standards injection for consistent code quality.
Teams using project-object should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/project-object/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How project-object Compares
| Feature / Agent | project-object | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Session memory that compounds - remember decisions, patterns, and corrections across AI coding sessions. Includes standards injection for consistent code quality.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
SKILL.md Source
# Project/Object - Session Memory for AI Agents
You have access to a session memory system that persists context between conversations.
This skill teaches you two protocols: **session memory** (remember what matters) and
**standards injection** (enforce project rules automatically).
## 1. Session Memory Protocol
### On Session Start
Read the project context file to restore memory from previous sessions:
1. Determine the project name:
- Try: `git remote get-url origin` and extract the repo name
- Fallback: use the basename of the current working directory
2. Read the context file at: `~/.project-object/{project-name}/context.md`
3. If the file exists, treat its contents as established project knowledge.
These are decisions, patterns, and corrections from previous sessions
that should inform your current work.
4. If the file does not exist, this is a new project. Create the context
file using the template in the Context Format section below after the
first meaningful session.
### Context Authority
- Decisions in the context file represent explicit user choices. Do not
second-guess them unless the user raises the topic.
- Patterns in the context file represent established conventions. Follow
them consistently.
- Corrections represent past mistakes. Avoid repeating them.
- Notes are informational. Reference them when relevant.
### Context Staleness
Context files grow stale. If a context file hasn't been updated in 30+
days and contains information that contradicts what you observe in the
codebase, flag the contradiction to the user rather than silently
following outdated context.
## 2. Context Format
The context file uses markdown with four standard sections:
```markdown
# Project Context: {project-name}
## Decisions
- Key decisions made during sessions
- Example: Using PostgreSQL instead of DynamoDB for relational data
- Example: All API responses use camelCase, not snake_case
## Patterns
- Patterns and conventions to follow
- Example: All handlers use wrapHandler pattern
- Example: Tests go in __tests__/ directory next to source files
## Corrections
- Important corrections from past sessions
- Example: Main branch is 'main', not 'master'
- Example: Don't use connection pools in Lambda functions
## Notes
- General notes and reminders
- Example: CI runs on push to main only
- Example: The database migration tool is in scripts/migrate.sh
```
### Rules
- Each item is a single markdown bullet (`- `)
- Keep items concise (one line each)
- Aim for fewer than 200 lines total
- Deduplicate: if two items say the same thing, keep the more specific one
- Organize by importance within each section (most important first)
## 3. Harvesting Rules
Before a session ends or when conversation is being compacted, extract
new context from the conversation transcript.
### What to Harvest
Scan the conversation for signals that indicate persistent knowledge:
**Decisions** (user made a choice):
- Phrases: "let's go with", "decided", "chose", "going with", "we'll use",
"switching to", "prefer"
- Example: User says "let's go with Tailwind instead of styled-components"
-> Add to Decisions: "Using Tailwind CSS for styling, not styled-components"
**Patterns** (recurring convention established):
- Phrases: "always", "never", "pattern", "convention", "standard",
"rule", "every time"
- Example: User says "always put the error handler last"
-> Add to Patterns: "Error handlers are always the last middleware"
**Corrections** (user corrected the agent):
- Phrases: "actually", "no", "not X but Y", "correction", "wrong",
"that's incorrect", "I said"
- Example: User says "no, the deploy script is in ops/ not scripts/"
-> Add to Corrections: "Deploy scripts are in ops/ directory, not scripts/"
**Notes** (useful project knowledge):
- Phrases: "remember", "note", "FYI", "keep in mind", "important",
"don't forget"
- Example: User says "remember the API rate limits reset at midnight UTC"
-> Add to Notes: "API rate limits reset at midnight UTC"
### What NOT to Harvest
Never persist:
- Passwords, secrets, tokens, API keys, credentials
- Temporary debugging context ("add a console.log here")
- One-time tasks ("fix this typo")
- Personal information unrelated to the project
- Speculative ideas that weren't confirmed ("maybe we could...")
### Merge Protocol
When adding new items to an existing context file:
1. Read the existing context file
2. For each new item, check if a similar item already exists
3. If duplicate: keep the more specific or more recent version
4. If new: append to the appropriate section
5. If contradicts existing: replace the old item with the new one
6. Write the updated file back to disk
## 4. Standards Injection Protocol
If the project has a standards directory with YAML rule files, load and
enforce those standards during the session. This provides consistent code
quality across all sessions and all contributors.
### Detection
On session start, check for standards in this order:
1. `.standards/` directory (preferred, with `yaml/` subdirectory)
2. `.equilateral-standards/` directory
If none found, skip standards injection. Session memory still works.
### YAML Standards Format
Standards are defined as YAML files with this schema:
```yaml
id: lambda-database-standards
category: serverless
priority: 10 # 10=critical, 20=important, 30=advisory
rules:
- action: ALWAYS # ALWAYS | NEVER | USE | PREFER | AVOID
rule: "Use environment variables with {{resolve:ssm:param}} in SAM templates"
- action: NEVER
rule: "Fetch SSM parameters at runtime -- costs $25/month per million invocations"
- action: NEVER
rule: "Use connection pools in Lambda -- Lambda handles one request at a time"
- action: PREFER
rule: "ARM64 architecture for Lambda functions (20% cost savings)"
anti_patterns:
- "Runtime SSM fetching in Lambda handlers"
- "new Pool() in Lambda function code"
tags:
- serverless
- database
- cost-optimization
```
### Loading Rules
1. Scan `.standards/yaml/` (or `.standards/`) for `*.yaml` and `*.yml` files
2. Parse each file, extract `rules[]` array and `priority`
3. Sort files by priority (lower number = loaded first)
4. Map actions to enforcement levels:
- `ALWAYS`, `USE` -> `[REQUIRE]`
- `NEVER`, `AVOID` -> `[AVOID]`
- `PREFER` -> `[PREFER]`
5. Also extract `anti_patterns[]` as `[AVOID]` rules
6. Cap at 30 rules total
### Enforcement Behavior
When standards are loaded:
- `[REQUIRE]` rules: Always follow. If you're about to violate one,
stop and mention it to the user.
- `[AVOID]` rules: Never do this. If you see existing code that violates
this, flag it during relevant work (don't audit unprompted).
- `[PREFER]` rules: Follow when practical. OK to deviate with reason.
### Example Injected Standards
```
[REQUIRE] Use environment variables with {{resolve:ssm:param}} in SAM templates
[REQUIRE] Fail fast and loud -- make failures obvious and immediate with specific error messages
[AVOID] Fetch SSM parameters at runtime -- costs $25/month per million invocations
[AVOID] Use connection pools in Lambda -- Lambda handles one request at a time
[AVOID] Returning mock/default objects in catch blocks to hide API failures
[PREFER] ARM64 architecture for Lambda functions (20% cost savings)
```
## 5. Cross-Platform Sync
Project/Object context can be synced to other AI coding tools so every
tool shares the same project memory.
| Platform | Target File | Sync Method |
|--------------|--------------------|-------------------------|
| Claude Code | Native hooks | Automatic (recommended) |
| Cursor | `.cursorrules` | `project-object sync --cursor` |
| Codex CLI | `AGENTS.md` | `project-object sync --codex` |
| Windsurf | `.windsurfrules` | `project-object sync --windsurf`|
| Continue.dev | `.continue/` | `project-object sync --continue`|
| Any agent | Read context file | Direct file read |
For agents without native hook support, read the context file directly
at `~/.project-object/{project-name}/context.md` at the start of each
session.
## 6. Quick Setup
### Automated (recommended)
```bash
npm install -g @equilateral_ai/project-object
cd your-project
project-object init
```
This installs Claude Code hooks for automatic session memory.
### Manual (no dependencies)
Create the context file manually:
```bash
mkdir -p ~/.project-object/$(basename $(pwd))
cat > ~/.project-object/$(basename $(pwd))/context.md << 'EOF'
# Project Context: your-project
## Decisions
## Patterns
## Corrections
## Notes
EOF
```
Then follow the harvesting rules in this skill to maintain it.
### Adding Standards
To add standards injection, use the community standards from
Equilateral Agents (includes serverless, security, testing, API design,
cost optimization, and more):
```bash
npm install @equilateral/agents
npx equilateral-agents init --standards
```
This creates a `.standards/` directory with YAML rule files.
You can also add community-contributed patterns:
```bash
git submodule add https://github.com/Equilateral-AI/EquilateralAgents-Community-Standards .standards-community
```
Community standards include battle-tested patterns, real-world examples,
workflow patterns, and integration guides -- all in YAML format.
**Contributions welcome** via PR to the community repo.
Or create your own YAML standards following the schema in the Standards
Injection section above.
## 7. The Learning Loop
This skill provides **static** session memory and standards enforcement.
For **adaptive** learning that automatically detects corrections and
promotes them to persistent behavioral patterns, see
[MindMeld](https://mindmeld.dev).
MindMeld extends Project/Object with:
- **Correction detection**: Automatically identifies when a user corrects
the agent's behavior
- **Pattern aggregation**: Groups similar corrections into patterns using
semantic similarity
- **Invariant promotion**: Promotes recurring patterns to permanent
behavioral rules (provisional -> solidified -> reinforced)
- **Relationship geometry**: Learns per-user interaction preferences and
communication styles
- **Purpose inference**: Automatically identifies the purpose of each
working relationship
Project/Object gives you session memory. MindMeld gives you a learning
loop. Start with Project/Object, upgrade to MindMeld when you want your
agent to learn from its mistakes.Related Skills
project-scaffolder
Guide for setting up Claude Code infrastructure in new or existing projects
project-qtax
UK taxation expert for HMRC compliance, Making Tax Digital (MTD ITSA/VAT) and Self-Assessment: explain tax treatment; compute income tax/NI/dividend/CGT with band-by-band breakdown; advise on deadlines/forms/penalties; and support MTD developer integration + tax software UX/flows. Use WebSearch (gov.uk/HMRC) to verify current rates and mandation timelines. (project)
project-overview
Background knowledge about CaCrFeedFormula project architecture, features, and context. Automatically loaded for AI reference, not directly user-invocable.
project-orchestration
Orchestrate multi-agent workflows for feature development using planning agents, context handoff, and stage management
project-mngt
Product Owner / Project Manager skill for MVP/MMP/MMR implementation planning
project-logger
SQLite-based project documentation logger for tracking API references, components, and project progress. Use this skill when documenting code changes, adding API documentation, recording component updates, or tracking project milestones. Automatically invoked when user mentions documentation, changelog, API docs, component docs, or project updates.
project-init
Automatically detects new project initialization, collaborates with user on project planning, and sets up the appropriate tech stack with matching skills and agents. Use when starting a new project, creating a new repository, or working in an empty/minimal directory that needs project structure.
project-index
Use this skill for large project maintenance with layered CLAUDE.md index system. Triggers when users need to (1) analyze and document existing codebases, (2) generate hierarchical CLAUDE.md files for modules, (3) set up incremental update hooks after code changes, or (4) navigate large projects efficiently. Supports legacy project onboarding and automatic context management.
project-guidelines-example
Example project-specific skill template based on a real production application.
project-development
This skill should be used when the user asks to "start an LLM project", "design batch pipeline", "evaluate task-model fit", "structure agent project", or mentions pipeline architecture, agent-assisted development, cost estimation, or choosing between LLM and traditional approaches.
project-context-discovery
Discover project structure, package managers, test frameworks, and automation without hardcoded assumptions
project-claude-initializer
為新專案初始化 Claude Code 配置,建立標準化的 .claude 目錄、CLAUDE.md 和 gitignore。當使用者說「初始化 Claude 配置」、「設定專案 Claude」時使用。