memory
ALWAYS ACTIVE — Persistent memory protocol. You MUST save decisions, conventions, bugs, and discoveries to engram proactively. Do NOT wait for the user to ask.
PR creation workflow for Engram following the issue-first enforcement system. Trigger: When creating a pull request, opening a PR, or preparing changes for review.
$ npx -y skills add Gentleman-Programming/engram --skill branch-pr --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/branch-prContext preview
The summary Claude sees to decide when to auto-load this skill.
PR creation workflow for Engram following the issue-first enforcement system. Trigger: When creating a pull request, opening a PR, or preparing changes for review.
name: engram-branch-pr description: > PR creation workflow for Engram following the issue-first enforcement system. Trigger: When creating a pull request, opening a PR, or preparing changes for review. license: Apache-2.0 metadata: author: gentleman-programming version: "2.0"
Use this skill when:
---
1. **Every PR MUST link an approved issue** — no exceptions 2. **Every PR MUST have exactly one `type:*` label** 3. **All required automated checks must pass** before merge is possible 4. **Blank PRs without issue linkage will be blocked** by GitHub Actions
---
1. Verify issue has `status:approved` label 2. Create branch: feat/*, fix/*, docs/*, refactor/*, chore/* 3. Implement changes 4. Run tests locally (unit + e2e) 5. Check every changed path against the [Transient Artifact Policy](../../CONTRIBUTING.md#transient-artifact-policy) 6. Open PR using the template 7. Add exactly one type:* label 8. Wait for all required automated checks to pass
---
Branch names are validated by a GitHub ruleset. Pushes that don't match **will be rejected**.
**Pattern:** `^(feat|fix|chore|docs|style|refactor|perf|test|build|ci|revert)\/[a-z0-9._-]+$`
| Type | Branch pattern | Example | |------|---------------|---------| | Feature | `feat/<description>` | `feat/json-export-command` | | Bug fix | `fix/<description>` | `fix/duplicate-observation-insert` | | Chore | `chore/<description>` | `chore/bump-bubbletea-v0.26` | | Docs | `docs/<description>` | `docs/api-reference-update` | | Style | `style/<description>` | `style/fix-tui-alignment` | | Refactor | `refactor/<description>` | `refactor/extract-query-sanitizer` | | Performance | `perf/<description>` | `perf/optimize-fts5-queries` | | Test | `test/<description>` | `test/add-sync-coverage` | | Build | `build/<description>` | `build/update-go-toolchain` | | CI | `ci/<description>` | `ci/split-e2e-job` | | Revert | `revert/<description>` | `revert/broken-migration` |
**Rules:**
---
The PR template is at `.github/PULL_REQUEST_TEMPLATE.md`. Every PR body MUST contain:
Closes #<issue-number>
Valid keywords: `Closes #N`, `Fixes #N`, `Resolves #N` (case insensitive). The linked issue MUST have the `status:approved` label.
Check exactly ONE in the template and add the matching label:
| Checkbox | Label to add | |----------|-------------| | Bug fix | `type:bug` | | New feature | `type:feature` | | Documentation only | `type:docs` | | Code refactoring | `type:refactor` | | Maintenance/tooling | `type:chore` | | Breaking change | `type:breaking-change` |
1-3 bullet points of what the PR does.
| File | Change | |------|--------| | `path/to/file` | What changed |
- [x] Unit tests pass locally: `go test ./...` - [x] E2E tests pass locally: `go test -tags e2e ./internal/server/...` - [x] Manually tested the affected functionality
All boxes must be checked:
---
| Check | Job name | What it verifies | |-------|----------|-----------------| | PR Validation | `Check Issue Reference` | Body contains `Closes/Fixes/Resolves #N` | | PR Validation | `Check Issue Has status:approved` | Linked issue has `status:approved` | | PR Validation | `Check PR Has type:* Label` | PR has exactly one `type:*` label | | Transient Artifact Check | `Check PR Has No Transient Artifacts` | PR files comply with the [Transient Artifact Policy](../../CONTRIBUTING.md#transient-artifact-policy) | | CI | `Unit Tests` | `go test ./...` passes | | CI | `E2E Tests` | `go test -tags e2e ./internal/server/...` passes | | CI | `Plugin Tests` | `npm test` passes in `plugin/pi` | | CI | `Lint` | golangci-lint reports no new findings in Go changes |
---
Commit messages are validated by a GitHub ruleset. Commits that don't match **will be rejected**.
**Pattern:** `^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(\([a-z0-9\._-]+\))?!?: .+`
**Format:**
<type>(<optional-scope>): <description> <type>(<optional-scope>)!: <description> ← breaking change
| Type | Purpose | PR label | |------|---------|----------| | `feat` | New feature | `type:feature` | | `fix` | Bug fix | `type:bug` | | `docs` | Documentation only | `type:docs` | | `refactor` | Code refactoring | `type:refactor` | | `chore` | Maintenance, deps | `type:chore` | | `style` | Formatting, whitespace | `type:chore` | | `perf` | Performance improvement | `type:refactor` | | `test` | Adding/fixing tests | `type:chore` | | `build` | Build system changes | `type:chore` | | `ci` | CI/CD changes | `type:chore` | | `revert` | Revert previous commit | *(match original type)* | | `feat!` / `fix!` | Breaking change | `type:breaking-change` |
feat(cli): add --json flag to session list command fix(store): prevent duplicate observation insert on retry docs(contributing): update workflow docume
Persistent memory system for AI coding agents. Agent-agnostic Go binary with SQLite + FTS5, MCP server, HTTP API, CLI, and TUI.
Repo: Gentleman-Programming/engram
ALWAYS ACTIVE — Persistent memory protocol. You MUST save decisions, conventions, bugs, and discoveries to engram proactively. Do NOT wait for the user to ask.
Architecture guardrails for Engram across local store, cloud sync, dashboard, and plugins. Trigger: Any change that affects system boundaries, ownership, state…
Backlog triage protocol for Engram: audit open issues and PRs, classify each item, infer maintainer ideology from comments, and produce an actionable…
Product and business-rule guardrails for Engram. Trigger: Any change that affects sync behavior, project controls, permissions, or memory semantics.
Commit and branch naming standards for Engram contributors, enforced by GitHub rulesets. Trigger: Any commit creation, review, or branch cleanup.
Cultural and collaboration norms for Engram contributors and agents. Trigger: Starting substantial work, reviewing changes, or defining team conventions.