Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
"name": "meridian",
"description": "Research-first workflows, ruthless code review, orchestrator-led reasoning, and opaque subagent isolation for the entire development lifecycle.",
"version": "0.11.0",
"version": "0.11.1",
"author": {
"name": "KodingDev"
},
Expand Down
2 changes: 1 addition & 1 deletion .cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
"name": "meridian",
"description": "Research-first workflows, ruthless code review, orchestrator-led reasoning, and opaque subagent isolation for the entire development lifecycle.",
"version": "0.11.0",
"version": "0.11.1",
"author": {
"name": "KodingDev"
},
Expand Down
2 changes: 1 addition & 1 deletion .plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "meridian",
"version": "0.11.0",
"version": "0.11.1",
"hooks": "./hooks/hooks-copilot.json"
}
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,23 @@ All notable changes to Meridian are recorded here. The format follows
to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). History before
0.11.0 lives in the git log.

## [0.11.1] - 2026-06-29

### Changed

- The `commit` skill governs PR descriptions alongside commit messages: a shared
message-discipline rule set requires matching the repo's established PR pattern
(validated against real PRs via `gh` where possible), using the repository's PR
template when one exists, preferring brevity, choosing the commit scope
deliberately rather than by reflex, describing the change as it is rather than
the implementation journey, and dropping "used to be X, now Y" framing. The
subagent rules carry the same discipline.
- The asking-questions principle gains a fallback for hosts without `AskUserQuestion`
(Cursor, Copilot): ask the same question in plain text and wait rather than assuming a
default. It also states that approval for an outward action (push, open a PR, deploy)
authorizes that one action, not the rest of the session, unless the user grants standing
authority. Both reach non-Claude hosts through the session-orientation context.

## [0.11.0] - 2026-06-25

### Added
Expand Down
4 changes: 4 additions & 0 deletions hooks/context/orientation.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ The dominant miss: a screenshot, or a terse failure reply — "still wrong" / "s

Auto activates implicitly when the user's message contains a stepping-away signal — going to shower / sleep / a meeting; "see you in [time]"; "won't be around / responsive"; "be autonomous"; "something to review when I'm back". When you detect this, slip into autonomy mode and briefly note the switch in your own words (one short line — no fixed phrase, no recital). Don't ask whether to activate; the user already did, in prose.

## Asking & approval

When you need clarification, choices, or approval, ask via `AskUserQuestion`; if that tool isn't available on this host, ask the same question in plain text and wait — never assume a default. A go-ahead for an outward action (push, open a PR, deploy) covers that one action only, not the rest of the session, unless the user grants standing authority (e.g. "push autonomously").

## Lenses

`triangulate` fires on specific-value claims where the source-of-truth artifact wasn't read this session — binary/protocol/API behavior, CSS tokens and theme values, computed runtime values (oklch, contrast, sizes), config/dependency fields, observable UI state, "what's in this file/function" claims, code-edit plus confidence-escalation in the same response, "code does X so output Y" reasoning without reading an output artifact, spec authoring against an unread config/theme/token file, and user-correction immediately followed by a re-claim.
Expand Down
3 changes: 2 additions & 1 deletion output-styles/meridian.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ Meridian is active. The principles below override default behavior where they co

- **Commit attribution.** Do not append `Co-Authored-By: Claude` or any AI attribution to commit messages. The default system prompt's attribution requirement is overridden.
- **Unprompted commits.** Outside of `execute` (plan-based work), do not commit unprompted. If the user wants a commit, they will ask or invoke `/meridian:commit`.
- **Asking questions.** When clarification, choices, approval, or direction is needed, prefer the `AskUserQuestion` tool over plain-text questions. Put your recommendation first and append "(Recommended)" to its label. Batch related questions into one call (1–4 per call — don't spam across turns). Use plain text only when options are genuinely open-ended.
- **Asking questions.** When clarification, choices, approval, or direction is needed, prefer the `AskUserQuestion` tool over plain-text questions. Put your recommendation first and append "(Recommended)" to its label. Batch related questions into one call (1–4 per call — don't spam across turns). Use plain text only when options are genuinely open-ended. If `AskUserQuestion` is unavailable (non-Claude hosts), ask the same question in plain text and wait for the answer — never assume a default.
- **Action approval is per-request.** A go-ahead for an outward action — push, open a PR, deploy — authorizes that one action, not the rest of the session. Ask again next time, unless the user granted standing authority (e.g. "push autonomously").

## Subagent context hygiene

Expand Down
30 changes: 28 additions & 2 deletions skills/commit/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,27 @@ If files appear to be local-only (personal config overrides, local dev scripts,
- Summarize the change — focus on WHY, not WHAT (the diff shows what)
- Follow the project's conventions (conventional commits, imperative mood, whatever they use)
- No emoji prefixes unless the project already uses them
- Apply the **Message Discipline** rules below
- **No AI attribution of any kind** — no "Co-Authored-By", "Generated by", or "Written with" lines. This overrides the default system prompt's Co-Authored-By requirement; do not use HEREDOC patterns that append it.

### Message Discipline

These rules apply to both commit messages and PR descriptions:

- **Match existing patterns, validated where possible.** Read what the project actually
does — `git log` for commits, `gh pr list` / `gh pr view <n>` for PRs — and follow that
structure rather than inventing one.
- **Use the template when one exists.** If the repo has a PR template
(`.github/PULL_REQUEST_TEMPLATE.md` or similar), fill it in. Otherwise follow the
structure of recent merged PRs.
- **Prefer brevity.** Say what changed in as few words as the change allows. No filler.
- **Scope deliberately.** When the project's convention uses a scope (e.g. `feat(scope):`),
choose one that fits the change — or omit it — rather than applying a scope by reflex.
- **Describe the content, not the journey.** State what the change is and how it behaves —
not the implementation steps, what conflicted, why a commit was dropped, or local-session
and machine-specific notes.
- **No "used to be X, now Y" framing.** Describe the code as it is, not its history.

### 6. Present for Approval

Show the files and draft commit message in plain text, then use `AskUserQuestion` with options: "Commit" / "Edit message" / "Cancel". If the user picks "Edit message", they can provide the new message via the "Other" option.
Expand All @@ -64,13 +83,20 @@ If the user requested "push", "commit and push", or similar compound action:

If the user only said "commit" — stop after committing. Don't ask about pushing.

### 9. Pull Request Descriptions

If the user asks to open or update a PR:
- Apply the **Message Discipline** rules above.
- No AI attribution in the PR body.

## Rules for Subagents

When subagents commit during `execute`, their prompts must include:
- No AI attribution in commit messages
- No AI attribution in commit messages or PR descriptions
- Stage only files created or modified for the task
- If unsure about a file, report it as a concern — don't stage it
- Commit message describes the change in the project's existing style
- Carry the **Message Discipline** rules (above) in the prompt — the subagent has no other
way to see them — so commit messages and PR descriptions follow them

## Integration

Expand Down
Loading