pk
Disabled: pk is now invoked explicitly through the /pk prompt template. Kept only as archived documentation for the former skill workflow.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Disabled: pk is now invoked explicitly through the /pk prompt template. Kept only as archived documentation for the former skill workflow.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Route conversational thinking requests to one focused framework. Three core modes: adversarial pushback (sycophancy), request investigation (root-ask), and plan/design interrogation (grill-me). Use when user wants a sparring partner, says 'help me think', 'think with me', 'push back', 'challenge', 'stress test', 'what am I missing', 'grill me', 'devil's advocate', 'root cause', 'behind the request', or has an ambiguous thinking-mode request. Route product strategy, goal-setting, systems thinking, stakeholder messaging, or parallel exploration to their dedicated skills instead.
Apply neutral, balanced framing when discussing contested political, ethical, policy, or empirical topics. Use when a user asks to argue for or against a position, defend a controversial view, write persuasive content on a debated topic, or when the conversation touches on politics, morality, policy disputes, or contested empirical claims. Also applies when the agent notices itself having a strong reaction to a position. Keywords: argue position, debate, argue for, defend, controversial, policy, ethics, moral, political, persuasive, contested, both sides, neutrality, bias, evenhandedness.
Ultra-compressed communication mode. Cuts token usage ~75% by dropping filler, articles, and pleasantries while keeping full technical accuracy. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman.
Closes the gap between what you're trying to say and what your audience actually receives. Use when you know what something does but can't get it to land — landing page copy that isn't clicking, a presentation whose audience won't 'get it', a pitch that keeps getting 'but what is it?', a message to a colleague you can't phrase without friction, stakeholder buy-in, proposal pre-alignment, or lesson content that isn't connecting. Also use when drafting interpersonal messages — disagreements, negotiations, bad news, feedback, apologies, cold outreach, delegating, celebrating, or any email/Slack/text where the situation matters. Keywords: craft message, communication, message clarity, audience, positioning, stakeholder alignment, buy-in, prealignment, proposal, landing page, not resonating, make it obvious, email, slack, message, draft, compose, disagreement, negotiation, bad news, feedback, apology, decline, cold outreach, boundary, delegate.
Analyze TypeScript/JavaScript codebases with the fallow CLI for dead code, complexity, hotspots, and ranked refactoring targets. Use when the user wants to find unused files/exports/dependencies, measure code health, identify high-risk files (complex + frequently changed), get prioritized refactoring targets, or set up CI quality gates. Triggers on: fallow, dead code, unused exports, complexity hotspot, codebase health, refactoring targets, CRAP score, cyclomatic complexity, TS/JS codebase cleanup.
Discover and install agent skills from the open ecosystem. Use when the user asks "how do I do X", "find a skill for X", "is there a skill that can...", or wants to extend agent capabilities with installable skills. Triggers on skill discovery, skill search, skill installation.
| name | pk |
| description | Disabled: pk is now invoked explicitly through the /pk prompt template. Kept only as archived documentation for the former skill workflow. |
| disable-model-invocation | true |
Structured project knowledge — intake, search, recall, and audit.
Use the pk CLI for all operations. Output is JSON by default; use --pretty for human-readable. Never read or write knowledge files directly.
MANDATORY READ references/knowledge-model.md when: creating a note type you haven't used before, unsure which folder a type belongs in, validating frontmatter, or unsure which status values are valid.
# Orient at session start
pk synthesize --session-start
# Search before creating anything
pk search "query"
pk search "query" --type decision --status open --tag infra --limit 5
# Read full content
pk read /abs/path/from/search
# Create — prints path; read skeleton, fill sections, then write back
pk new note "Title" --tags auth,api
pk new note "Title" --tags temp --expires 2026-12-31
pk new decision "Title"
pk new question "Title"
pk new source "Title"
# Write back (always pk read first; never change id, type, or created)
pk write /abs/path <<'EOF'
---frontmatter---
## Section
Content.
EOF
# Validate (run after every write)
pk lint
pk lint path1 path2
# History, tags, index
pk history --limit 20 --filter-type decision
pk vocab
pk index
# Lifecycle maintenance (run daily/weekly via cron or manually)
pk gc # decay scoring + archive stale + purge expired
pk gc --dry-run # preview without changes
pk gc --compress # find similar notes for interactive merge
source vs note: source = raw input (meeting notes, transcripts, external docs). note = stable synthesised fact you've derived. Extract notes from sources; never dump raw input into a note.
After creating a note that supersedes existing knowledge:
pk search "<topic>" — find the old notepk read <old-note-path> — confirm the conflictpk write <old-note-path> — change status: superseded, add to ## Related: Superseded by [[<new-note-id>]] — <reason>.pk lint <old-note-path> — validateKnowledge has a lifecycle. Notes decay, expire, and get superseded.
pk gc updates decay scores and archives notes below threshold.expires date (frontmatter) are archived automatically when the date passes. Use --expires YYYY-MM-DD on pk new for time-bounded knowledge (deadlines, temporary blockers).pk gc --compress identifies similar notes for interactive merging. Run weekly.NEVER skip pk search before pk new.
Instead: Search by topic, likely title, and key tags; update an existing note when it already captures the claim.
Why: Duplicates fragment knowledge silently; future searches return noise and agents may trust the wrong copy.
NEVER dump raw input into a note or decision.
Instead: Create a source for raw material, then extract stable claims into notes or decisions.
Why: Raw input and synthesized knowledge age differently; mixing them makes later recall look more authoritative than it is.
NEVER silently overwrite a conflicting claim. Instead: Follow the Contradiction Protocol and mark older knowledge superseded with a link to the replacement. Why: Preserving the conflict trail lets future agents understand whether a change was correction, reversal, or context shift.
NEVER commit when pk lint returns errors.
Instead: Fix frontmatter/body structure and rerun pk lint before treating the note as usable.
Why: Invalid notes may disappear from search or break lifecycle tooling, which is worse than having no note.