Instinct-based learning system with project scoping. Creates atomic instincts with confidence scoring and evolves them into skills, commands, or agents. v2 adds project-scoped instincts to prevent cross-project contamination. Use when tracking a heuristic specific to one project, promoting a project instinct to global scope, or reviewing project-specific patterns.
Extends the base continuous-learning skill with project isolation: React patterns stay in your React project, Java conventions stay in your Java project. Universal patterns (always validate input, grep before edit) are shared globally.
| Feature | v1 | v2 |
|---|---|---|
| Scope | All instincts are global | Project-scoped by default, promotable to global |
| Storage | One flat file per pattern | Separate dirs per project |
| Cross-project | Contamination risk | Isolated by default |
| Promotion | Manual | Explicit /promote step |
## Instinct: {Name}
**Heuristic:** [One sentence — what does the instinct say?]
**Confidence:** {1-5} / 5
**Scope:** project | global
**Project:** {project name, or "all projects" if global}
**Evidence log:**
| # | Context | Outcome | Score delta |
|---|---|---|---|
| 1 | {Where this was applied} | {Worked/Failed/Partial} | +1 |
**Promoted to pattern:** [Link to pattern, or "pending"]
**Contradictions:** [What evidence challenged this?]
Create these directories manually — they are conventions, not managed by Copilot CLI.
~/.copilot/
├── instincts/
│ ├── global/ # Apply in all projects
│ │ ├── grep-before-edit.md
│ │ └── always-validate-input.md
│ └── projects/
│ ├── my-spring-api/ # Project-specific
│ │ ├── avoid-eager-fetch.md
│ │ └── use-record-dtos.md
│ └── my-react-app/
│ └── prefer-signals.md
└── evolved/ # Promoted to skills/agents/commands
├── skills/
├── agents/
└── commands/
Naming: Use the git repository name (or any consistent short name) as the project folder name.
| Pattern Type | Scope |
|---|---|
| Language/framework conventions | project |
| File structure preferences | project |
| Code style choices | project |
| Error handling strategy | project |
| Security practices | global |
| General best practices | global |
| Tool workflow preferences (grep before edit) | global |
| Git practices (conventional commits) | global |
Rule of thumb: If the pattern would be wrong or confusing in a different project, make it project-scoped.
| Occurrence | Action |
|---|---|
| 1st | Note as project-scoped instinct (confidence: 2) |
| 2nd | Update instinct (confidence: 3–4); note whether it's project-specific |
| 3rd in same project | Promote to named pattern in that project's SKILL.md section |
| 3rd across different projects | Promote to global instinct (confidence: 4–5); candidate for a new SKILL.md |
When the same instinct appears in 2+ projects with confidence ≥ 4, promote it to global scope.
How:
~/.copilot/instincts/projects/{project}/ to ~/.copilot/instincts/global/Scope field to global and remove the Project fieldAsk four questions:
If the answer to any question is project-specific → store under projects/{name}/.
If it applies universally → store under global/.
Architecture decisions belong in the project, not in the user's home:
{repo-root}/
└── docs/
└── adr/
├── ADR-001-choose-flyway-over-liquibase.md
└── ADR-002-use-record-dtos.md
Use the ADR template from the continuous-learning skill (v1).
v1 instincts stored in .copilot-runtime/ can be migrated manually:
.copilot-runtime/decisions/ → docs/adr/ (project ADRs)~/.copilot/instincts/global/~/.copilot/instincts/projects/{name}/