using-pulse
Bootstrap meta-skill. Load this after pulse:preflight to route into the correct next Pulse skill and resume safely inside a preflight-ready Pulse environment.
Use this 3-plane model:
- Operator plane — user goal, approvals, active mode, and next gate.
- Cookbook plane — which Pulse skill to invoke next.
- Scout plane — repo truth: onboarding/tooling health, state mirrors, handoffs, checkpoints, and memory pointers.
This skill is a pure router + scout brief inside a preflight-ready Pulse runtime. It does not replace downstream skill contracts, and it does not make onboarding/remediation or runtime-readiness decisions.
Preflight Contract
pulse:preflight is the sole readiness authority for a Pulse session.
- If preflight readiness is missing or stale in
.pulse/tooling-status.json, invokepulse:preflight. - If
.pulse/tooling-status.jsonis missing, invokepulse:preflight. - If preflight reported
FAILorblocked, stop and present that result instead of re-checking tooling here. - Missing
br/bvis a preflight blocker for Pulse execution-capable routing; this skill must not treat missing bead tooling as a local workaround case. - If preflight reported
DEGRADED, route within the approved downgrade and do not rerun onboarding or tool-health checks. - If dependency warnings are surfaced in preflight output, keep command-vs-MCP wording explicit:
Missing commands: ...Missing MCP server configuration: ...
Do not run onboard_pulse.mjs --apply from this skill. Any onboarding or remediation change belongs to pulse:preflight.
Before Anything Else
- Read
.pulse/tooling-status.json. - If
.pulse/scripts/pulse_status.mjsexists, runnode .pulse/scripts/pulse_status.mjs --json. - If the scout script is missing, or preflight readiness artifacts are missing/stale/blocked, run
pulse:preflightfirst. - Respect
recommended_modefrom preflight:swarm→pulse:swarmingallowedsingle-worker→ skip swarming, usepulse:executingplanning-only→ do not start executionblocked→ clear blockers first
Session Scout
After onboarding, run:
node .pulse/scripts/pulse_status.mjs --json
Scout is read-only orientation. It summarizes onboarding, dependency health, state mirrors, handoffs, advisory checkpoints, project-doc routing hints, and targeted memory recall.
Scout output is context, not a gate bypass. Keep gates and downstream skill contracts intact.
Project docs are part of the scout contract:
- if
.pulse/project-docs.jsonis mapped, read the mapped repo-level docs before feature history when terminology or architecture boundaries matter - if project docs are only detected, surface that and consider
pulse:bootstrap-project-contextbefore deeper planning - if project docs are missing, do not invent a repo glossary silently; keep the absence explicit
Checkpoint and State Posture
Checkpoint files under .pulse/checkpoints/<feature>/... are advisory snapshots only.
Authoritative sources remain:
- active entries in
.pulse/handoffs/manifest.json - owner handoff file selected from the active manifest
- current state mirrors (
.pulse/state.json,.pulse/STATE.md)
Use checkpoints for quick comparison, recall hooks, and resume briefing acceleration. Never treat checkpoints as a second state machine.
See references/handoff-contract.md for canonical pause/resume companion rendering, and references/history-lifecycle-contract.md for durable audit expectations.
GitNexus Readiness Is Part of Session Start
Treat gitnexus as preferred discovery when configured.
configured = true: preferpulse:gitnexus, then verify with file reads.configured = false: continue with grep/file inspection.- Use
matched_sourcesto verify where MCP config came from.
Readiness here is config availability, not index-quality validation.
Dependency Declaration Contract
Every packaged Pulse skill must make its dependency posture explicit. There are only three valid states:
- Command-backed skill — declare each required CLI under
metadata.dependencieswithkind: command, the binary name incommand, a truthfulmissing_effect, and a shortreason. - MCP-backed skill — declare each required MCP server under
metadata.dependencieswithkind: mcp_server, the expectedserver_names, the supportedconfig_sources, a truthfulmissing_effect, and a shortreason. - Dependency-free packaged skill — declare
metadata.dependencies: []to say the skill was reviewed and does not rely on first-class external tools.
Do not leave a packaged skill with undeclared dependency posture.
When updating or adding packaged Pulse skills, run:
node skills/using-pulse/scripts/test_onboard_pulse.mjsbash scripts/sync-skills.sh --dry-run
Routing Cookbook
Use this routing cookbook to route into the next specialist skill. It is a maintained using-pulse routing aid, not a complete packaged-skill inventory.
| # | Skill | Load when... |
|---|---|---|
| 0 | pulse:preflight |
Starting, resuming, or before execution-capable flow |
| 1 | pulse:using-pulse |
After preflight on any Pulse session |
| 1b | pulse:brainstorming |
Intent is vague and design is not locked |
| 2 | pulse:exploring |
Feature intent exists but implementation decisions are fuzzy |
| 3 | pulse:planning |
Decisions are locked and implementation planning is next |
| 4 | pulse:validating |
Current work and beads must be proven execution-ready |
| 5 | pulse:swarming |
recommended_mode=swarm and execution is approved |
| 6 | pulse:executing |
Direct implementation is happening |
| 7 | pulse:reviewing |
Execution is complete and quality gate is next |
| 8 | pulse:compounding |
Completed Pulse cycle and post-cycle machine learnings should be captured |
| 9 | pulse:systematic-debug-fix |
Agent path is blocked by failures |
| 10 | pulse:gitnexus |
Architecture/discovery/impact questions when configured |
| 11 | pulse:dev-note |
User explicitly asks to record one learning from this conversation |
| 12 | pulse:dev-note-distil |
User asks to distill accumulated dev-notes into reader-facing topics |
| 13 | pulse:dream |
User asks to consolidate runtime artifacts into machine-readable memory |
| 14 | pulse:writing-pulse-skills |
Editing Pulse skills |
| 15 | pulse:architecture-rescue |
Architecture cleanup report is requested |
| 16 | pulse:bootstrap-project-context |
Project-doc bootstrap or glossary setup is requested |
Routing Logic
Mode Selection
| Mode | Use when... |
|---|---|
small_change |
Low-risk local fix/tweak with no new capability/API/data-model/ownership boundary |
standard_feature |
Default for feature work and medium-scope refactors |
high_risk_feature |
Cross-cutting or high-blast-radius feature/refactor work |
If a request introduces user-visible capability, workflow, subsystem, API surface, durable data-model change, or ownership boundary, it is feature work.
First-Skill Routing
| Request type | First skill |
|---|---|
| Unformed idea / unclear design intent | pulse:brainstorming |
| Feature intent is clear but implementation decisions are unresolved | pulse:exploring |
Clear implementation request with decisions already locked (approved CONTEXT.md) |
pulse:planning |
| Small low-risk fix | pulse:exploring for an approved mini CONTEXT.md, then pulse:planning (small_change) |
| "Review my code" | pulse:reviewing |
| "Note this learning from this conversation" | pulse:dev-note |
| "Distill accumulated dev notes for reading" | pulse:dev-note-distil |
| "Consolidate runtime artifacts into machine memory" | pulse:dream |
| "Capture post-cycle machine learnings" | pulse:compounding |
| "Improve Pulse itself" | pulse:writing-pulse-skills |
| "Architecture rescue" asks | pulse:architecture-rescue |
| Architecture/discovery asks | pulse:gitnexus |
| Repo/project-doc bootstrap or glossary setup | pulse:bootstrap-project-context |
| Blocked/failing agent flow | pulse:systematic-debug-fix |
/go / full pipeline |
Go Mode (references/go-mode-pipeline.md) |
| Resume interrupted work | Resume logic from handoff manifest |
Deterministic tie-breaker:
- If the request is still unclear after a quick scout (problem, user, or success criteria not concrete), route to
pulse:brainstormingfirst. - Otherwise, route to
pulse:exploring.
Maintenance rule: when adding/removing a first-skill routing row in the table above, update this Routing Cookbook in the same change.
Do not route directly to pulse:planning unless an approved history/<feature>/CONTEXT.md already exists for this exact work slice.
Gate and State Ownership
Entry-layer ownership is explicit:
pulse:preflightowns readiness artifacts (.pulse/tooling-status.json,.pulse/state.json, preflight status in.pulse/STATE.md).pulse:using-pulseowns routing guidance only; it must not rewrite gate outcomes from later phases.pulse:exploringowns writinghistory/<feature>/CONTEXT.mdand handoff-ready state hints.- Gate 1 approval is a human decision on
history/<feature>/CONTEXT.md; after approval, runtime state should carrygate_status: approved,next_skill_recommended: pulse:planning, andnext_action: manual_invokeby default.
Do not mark Gate 1 approved before explicit user approval.
Resume Logic
Resume handling stays in the scout plane.
- Read
.pulse/handoffs/manifest.json. - Present active handoffs by owner, skill, feature, active work slice, summary, and next action.
- If multiple active entries exist, ask user which one to resume.
- Open only the selected owner file and resume from
summary,next_action,read_first, andpayload.transfer. - Optionally use latest matching checkpoint as advisory aid.
- Load the chosen handoff skill and continue.
- Do not auto-resume without user confirmation.
Canonical pause/resume schema and rendered companion contract live in references/handoff-contract.md.
Go Mode
Go mode is the full operator-plane pipeline with 4 human gates. Canonical details live in references/go-mode-pipeline.md.
Trigger:
/go <feature>- "run the full pipeline"
- "go mode"
Non-negotiable gates:
- Gate 1: approve
history/<feature>/CONTEXT.md - Gate 2: approve selected shape artifact (
work-shape.md,phase-plan.md, orepic-map.md) - Gate 3: approve feasibility-validated current work execution
- Gate 4: approve merge after reviewing (
P1findings still block)
Execution branch from preflight:
recommended_mode=swarm→pulse:swarmingrecommended_mode=single-worker→pulse:executingrecommended_mode=planning-only|blocked→ do not start execution
Priority Rules
P1review findings always block merge.- Context budget always applies: if context exceeds 65%, current owner writes its own handoff and updates manifest.
CONTEXT.mdis source of truth for product and architecture decisions.- Planning owns
critical-patterns.mdingestion; workers execute from bead context first. - Planning defines
spike_questionfor each HIGH-risk item; validating owns spike bead creation/execution. - GATE 3 is critical. If plan soundness is uncertain, do not approve execution.
- Spike failures halt pipeline and route back to planning.
- Preflight decides swarming vs direct executing path.
- Never skip validating.
Red Flags
Pause and surface immediately when:
- flow jumps from exploring to execution
- execution starts with
recommended_mode=blocked - retired/global handoff path is used instead of owner-scoped handoffs
- HIGH-risk plan has no
spike_question - review is skipped outside approved lightweight
small_changeflow - active handoff manifest/file references are inconsistent
state.jsonorSTATE.mdis stale after active-work transition
File Quick Reference
.pulse/tooling-status.json <- preflight output
.pulse/state.json <- machine-readable routing/status mirror
.pulse/STATE.md <- shared project state
.pulse/project-docs.json <- project-doc routing map
.pulse/handoffs/manifest.json <- active handoff index (authoritative)
.pulse/checkpoints/<feature>/... <- advisory checkpoint snapshots
history/<feature>/CONTEXT.md <- locked decisions from exploring
history/<feature>/work-shape.md <- approved shape for direct/spike/small work
history/<feature>/phase-plan.md <- approved shape for milestone/phase-shaped work
history/<feature>/epic-map.md <- approved shape for capability/risk-shaped work
history/<feature>/lifecycle-summary.md <- durable audit summary
References
references/go-mode-pipeline.mdreferences/handoff-contract.mdreferences/history-lifecycle-contract.md