Communitygithub.com

cdcoonce/Portfolio_Website

Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".

Was ist Portfolio_Website?

Portfolio_Website is a Claude Code agent skill that interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/cdcoonce/Portfolio_Website/tree/HEAD/.claude/skills/grill-me

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Grill Me — Shared Understanding Through Systematic Interrogation

Philosophy

The purpose of grilling is to build shared understanding between the agent and the user. Every plan contains implicit assumptions, unstated constraints, and ambiguous decisions. Grilling walks through every branch of the decision tree, one by one, until both parties are fully aligned.

The goal is zero unexamined assumptions before implementation begins.

Prime Directives

  1. Use AskUserQuestion for every question. All interrogation questions must go through the AskUserQuestion tool. Never output a question as plain text.
  2. Batch within domains. Group up to 4 related questions within the same interrogation domain into a single AskUserQuestion call. Never mix questions from different domains in one call.
  3. Lead with your recommendation. Your recommended answer is always the first option, with (Recommended) appended to the label.
  4. Explore before asking. If a question can be answered by reading the codebase, reading docs, or checking existing patterns — do that instead of asking. Only ask the user about decisions that require their judgment.
  5. Resolve dependencies in order. Some decisions depend on others. Identify the dependency chain and resolve upstream decisions first.
  6. Track everything with structured records. Maintain a decisions log as a structured table. For each resolved question, record: domain, topic (header), selected option label, and any custom text if 'Other' was chosen. Present the log in conversation context — no file I/O.
  7. No assumptions survive. If something is implied but not stated, surface it. If something seems obvious, confirm it. Shared understanding means explicit agreement, not comfortable silence.
  8. Stay concrete. Frame questions around specific behaviors, data flows, and user-visible outcomes — not abstract concepts.

Pre-Interrogation Setup

Before asking any questions, build context silently:

  1. Read the plan or design document the user wants grilled
  2. Explore the codebase for existing patterns, constraints, and relevant code
  3. Check recent git history for context on current work
  4. Read project.md and CLAUDE.md for project conventions

Then present a brief summary of what you understand so far, organized by the interrogation domains. This gives the user a chance to correct major misunderstandings before diving into branch-by-branch questioning.

Interrogation Domains

Work through the domains defined in references/interrogation-domains.md. Adapt the order to the plan — start with the domain most central to what's being built and work outward. Skip domains that are clearly irrelevant.

Interrogation Process

1. Read and summarize your understanding of the plan
2. User confirms or corrects the summary
3. For each interrogation domain (ordered by relevance):
   a. Identify all decision points and assumptions in this domain
   b. Group related decision points into batches of up to 4 questions
   c. For each batch, invoke a single AskUserQuestion call
      (recommendation first for each question). Record all selected options.
   d. After resolving all points in a domain, summarize decisions made
      Present the domain's decisions as rows in the structured table format.
4. After all domains are covered:
   - Present the complete decisions log as a structured table:
     | # | Domain | Topic | Decision | Notes |
     |---|--------|-------|----------|-------|
     | 1 | Intent | Goal  | Other | Internal dashboard for ops team, not customer-facing |
   - Flag any unresolved or deferred items
   - Ask if any domain needs revisiting

Question Format

Every question MUST be asked via the AskUserQuestion tool. Structure each call as follows:

{
  "question": "When the Oura API returns a 429, how should we handle rate limiting?",
  "header": "Rate Limits",
  "options": [
    {
      "label": "Exponential backoff (Recommended)",
      "description": "Retry with exponential backoff (1s, 2s, 4s). Handles transient limits gracefully and matches the retry pattern already used in src/api_client.py."
    },
    {
      "label": "Queue for next run",
      "description": "Skip the request and add it to the next scheduled run. Simpler but delays data by one cycle."
    }
  ],
  "multiSelect": false
}

Depends on: State any prior decisions this builds on in the question text, or note "No dependencies" if standalone.

Batched questions example

{
  "questions": [
    {
      "question": "What is the primary deployment target?",
      "header": "Deploy",
      "options": [
        {
          "label": "Docker + ECS (Recommended)",
          "description": "Matches existing infra. Deployment pipeline already exists."
        },
        {
          "label": "Kubernetes",
          "description": "More flexible but requires new infra setup."
        },
        {
          "label": "Serverless",
          "description": "Lower ops burden but cold start latency concerns."
        }
      ],
      "multiSelect": false
    },
    {
      "question": "Which monitoring approaches should we include?",
      "header": "Monitoring",
      "options": [
        {
          "label": "Structured logging (Recommended)",
          "description": "JSON logs to CloudWatch. Searchable and alertable."
        },
        {
          "label": "APM traces",
          "description": "Distributed tracing for request flow visibility."
        },
        {
          "label": "Custom metrics",
          "description": "Business-specific counters and gauges in Datadog."
        }
      ],
      "multiSelect": true
    }
  ]
}

Using previews

Use the preview field on options when the user needs to visually compare concrete artifacts — code snippets, architecture diagrams, schema shapes, or configuration examples. Preview content renders as markdown in a monospace box with side-by-side comparison.

When to use previews:

  • Comparing two code patterns or implementations
  • Showing different schema shapes or data structures
  • Presenting architecture alternatives with ASCII diagrams

Constraint: Previews are single-select only (multiSelect: false). If you need multi-select, omit previews and use descriptions instead.

Example with previews:

{
  "question": "Which pattern should we use for the data pipeline?",
  "header": "Pipeline",
  "options": [
    {
      "label": "Generator pipeline (Recommended)",
      "description": "Lazy evaluation, memory-efficient for large datasets.",
      "preview": "def pipeline(source):\n    for record in source:\n        cleaned = clean(record)\n        validated = validate(cleaned)\n        yield validated"
    },
    {
      "label": "Batch pipeline",
      "description": "Processes all records at once. Simpler but higher memory usage.",
      "preview": "def pipeline(source):\n    records = list(source)\n    cleaned = [clean(r) for r in records]\n    validated = [validate(r) for r in cleaned]\n    return validated"
    }
  ],
  "multiSelect": false
}

Rules for Asking Questions

  • Use AskUserQuestion for every question. Period.
  • First option = recommendation. The first option always has (Recommended) in the label.
  • Batch related questions. Group up to 4 related questions from the same domain into one AskUserQuestion call. Cross-domain questions must be separate calls.
  • Respect tool constraints. 2-4 options per question. Headers max 12 characters. Use multiSelect: true when options are not mutually exclusive (e.g., 'Which testing approaches should we use?' or 'Which domains need coverage?').
  • Filter options. When more than 4 valid choices exist, present the 3 most relevant based on codebase context. Users select "Other" for anything not listed.
  • Be specific. "How should we handle errors?" is too vague. "When the Oura API returns a 429, should we retry with backoff or queue for the next run?" is specific.
  • Show your work. If your recommendation is based on something you found in the codebase, reference the file and line.
  • Accept the answer. When the user decides, record it and move on. Don't re-litigate unless a later decision creates a conflict with a prior one.

Fallback (no AskUserQuestion available)

If AskUserQuestion is not available in the runtime environment, fall back to this text format:

[Header] — [Topic]

[Clear statement of the question]

Recommended: [Your recommendation and why]

Alternatives:

  • (A) [Option] — [trade-off]
  • (B) [Option] — [trade-off]

When to Stop

The grill is complete when:

  • Every relevant interrogation domain has been covered
  • All decision branches have been resolved or explicitly deferred
  • The user confirms shared understanding

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

cdcoonce/Portfolio_Website

Git commit workflow with enforced conventional commit style. Use when Claude needs to stage and commit changes, craft commit messages, or the user asks to commit, make a commit, or save their work. Ensures consistent commit message format, proper scoping, and atomic commits across the project.

cdcoonce/Portfolio_Website

AI-powered code quality analysis for Python, Markdown, and Mermaid diagrams. Use this skill when: (1) reviewing code for quality issues, (2) checking Python files for PEP8 violations, unused code, missing type hints, docstring problems, complexity issues, or potential runtime errors, (3) validating Markdown documentation for broken links, heading structure, or formatting issues, (4) validating Mermaid diagram syntax, (5) the user asks for a "code review" or "quality check", (6) analyzing code snippets pasted in conversation, or (7) suggesting and applying fixes for code quality issues.

cdcoonce/Portfolio_Website

Deploy the portfolio chat agent Lambda function to AWS. Use when the user asks to deploy, redeploy, push to Lambda, update the chat agent, or after updating context files or lambda_function.py. Rebuilds the knowledge base, packages dependencies, and deploys to AWS Lambda.

cdcoonce/Portfolio_Website

Generate multiple radically different interface designs for a module using parallel sub-agents. Use when user wants to design an API, explore interface options, compare module shapes, or mentions "design it twice".

cdcoonce/Portfolio_Website

Orchestrate the full GitHub-issues-driven development lifecycle. 7-phase pipeline from brainstorm through PR with state tracking and cross-conversation resume. Use when user says "dev cycle", "development workflow", "full development pipeline", or invokes /dev-cycle.

cdcoonce/Portfolio_Website

Production Python coding standards with automatic version detection (3.10-3.13). Use when writing, reviewing, or refactoring Python to ensure adherence to modern type syntax, LBYL exception handling, pathlib operations, ABC-based interfaces, and production-tested patterns. Not Dagster-specific - applies to any Python project.

cdcoonce/Portfolio_Website

Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute. Use when user wants to prevent destructive git operations, add git safety hooks, or block git push/reset in Claude Code.

cdcoonce/Portfolio_Website

GitHub CLI (gh) integration for managing issues, pull requests, branches,

cdcoonce/Portfolio_Website

Explore a codebase to find opportunities for architectural improvement, focusing on making the codebase more testable by deepening shallow modules. Use when user wants to improve architecture, find refactoring opportunities, consolidate tightly-coupled modules, or make a codebase more AI-navigable.

cdcoonce/Portfolio_Website

CEO/founder-mode plan review. Rethink the problem, find the 10-star product, challenge premises, expand scope when it creates a better product. Three modes: SCOPE EXPANSION (dream big), HOLD SCOPE (maximum rigor), SCOPE REDUCTION (strip to essentials). Use when the user asks for a plan review, CEO review, mega review, or wants a plan challenged/stress-tested before implementation.

cdcoonce/Portfolio_Website

Break a PRD into independently-grabbable GitHub issues using tracer-bullet vertical slices. Use when user wants to convert a PRD to issues, create implementation tickets, or break down a PRD into work items.

cdcoonce/Portfolio_Website

Turn a PRD into a multi-phase implementation plan using tracer-bullet vertical slices, saved as a local Markdown file in docs/plans/. Use when user wants to break down a PRD, create an implementation plan, plan phases from a PRD, or mentions "tracer bullets".

cdcoonce/Portfolio_Website

Generate or update the `.claude/docs/project.md` file that gives Claude project-specific context. Use this skill when the user asks to create, update, regenerate, or refresh project context, or says things like "update project.md", "generate project context", "this repo needs a project.md", or "Claude doesn't know about this project". Also trigger when onboarding Claude to a new repository for the first time.

cdcoonce/Portfolio_Website

Generate comprehensive, high-quality README.md files for code repositories. Use this skill whenever the user asks to create, write, generate, update, or improve a README for any project or repository. Also trigger when the user says things like "document this project", "write docs for this repo", "this repo needs a README", "help me onboard developers to this codebase", or asks for project documentation in markdown. Even if the user just says "README" or "readme" in the context of a codebase, use this skill.

cdcoonce/Portfolio_Website

Create a detailed refactor plan with tiny commits via user interview, then file it as a GitHub issue. Use when user wants to plan a refactor, create a refactoring RFC, or break a refactor into safe incremental steps.

cdcoonce/Portfolio_Website

Set up pre-commit hooks for the current repo. Use when user wants to add pre-commit hooks, configure commit-time linting, formatting, type checking, or testing. Triggers on "pre-commit", "git hooks", "linting hooks", or /setup-pre-commit.

cdcoonce/Portfolio_Website

Test-driven development with red-green-refactor loop. Use when user wants to build features or fix bugs using TDD, mentions "red-green-refactor", wants integration tests, or asks for test-first development.

cdcoonce/Portfolio_Website

Triage a bug or issue by exploring the codebase to find root cause, then create a GitHub issue with a TDD-based fix plan. Use when user reports a bug, wants to file an issue, mentions "triage", or wants to investigate and plan a fix for a problem.

cdcoonce/Portfolio_Website

Rewrites the prose sections of wiki pages in-place. Reads source files to understand current context, then updates only the content inside <!-- claude:prose --> ... <!-- claude:prose:end --> markers. Never touches <!-- generated:start --> ... <!-- generated:end --> blocks. Supports targeting a single page with /update-wiki {PageName}.

cdcoonce/Portfolio_Website

Create a PRD through user interview, codebase exploration, and module design, then submit as a GitHub issue. Use when user wants to write a PRD, create a product requirements document, or plan a new feature.

Verwandte Skills