Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Report Intent Interview

ASecurity

Given approved metric contracts and a ready semantic model, interview the report requester to capture what a dashboard report is FOR -- audience, purpose, supported decision, review cadence, primary business questions, outcome/driver/guardrail metrics (referenced by name only, never defined), comparisons, dimensions/filters, expected actions/exceptions, pages/drill paths, and mobile/accessibility/language/RTL needs -- and record the result as a committed Report Intent artifact plus a named-hu...

2 stars
0 votes
0 copies
2 views
Added 9/29/2026
datagoc#

Security Analysis

A100/100

Scanned 9/29/2026

$npx -y skills add Kemetra/Seshat-BI --skill report-intent-interview --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Report Intent Interview?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Report Intent Interview
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kemetra-report-intent-interview/badge)](https://www.skillsdirectory.com/skills/kemetra-report-intent-interview)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: report-intent-interview
description: >-
  Given approved metric contracts and a ready semantic model, interview the
  report requester to capture what a dashboard report is FOR -- audience,
  purpose, supported decision, review cadence, primary business questions,
  outcome/driver/guardrail metrics (referenced by name only, never defined),
  comparisons, dimensions/filters, expected actions/exceptions, pages/drill
  paths, and mobile/accessibility/language/RTL needs -- and record the result
  as a committed Report Intent artifact plus a named-human
  `report_intent_approval` decision. Use when someone describes a report they
  need in plain language, before any page blueprint, visual spec, or report
  composition is authored. It asks obvious low-risk items as one batch and
  critical items individually with explicit named-human approval; it masks PII
  by default; it records the intent and STOPS. It does NOT define metric
  meaning, does NOT self-grant any approval, and does NOT emit a confidence
  score.
---

# report-intent-interview

The Report Intent Interview is the missing front end of the dashboard
intelligence journey (spec 123, US1). It converts a conversational report
request into a committed, reviewable `report-intent.yaml` so every downstream
artifact (blueprint, composition, preview, audit, PBIR) traces back to a clear,
approved report purpose instead of an unrecorded assumption.

This skill mirrors `.claude/skills/business-knowledge-interview/SKILL.md`
structurally (load-existing-first, batch/critical question grouping, PII
masking, record + STOP, never self-grant) but does NOT extend it: the
`required_inputs` and `focus` differ. Behavior is governed by the contract
`contracts/interview/report-intent-interview.yaml`; the shape of the produced
artifact is `templates/report-intent.yaml`. The static rule DL9
(`seshat check`) verifies the recorded artifact's SHAPE, not the conversation.

## When to use

- Someone describes a report they need in plain language ("I need a weekly
  report for branch managers to spot underperforming branches").
- Before `dashboard-design`, the dashboard coordinator, page blueprints, visual
  specs, or report composition -- those stages trace their `business_question`
  back to a question declared here (FR-002a) and are blocked until this
  intent's own `report_intent_approval` decision is approved.

## Preconditions (stop if unmet)

- Approved metric contracts exist for the subject area (`readiness.status:
  pass`). **No approved contract for a metric the request needs => record a
  gap, route upstream to metric-contract definition, and leave the intent
  blocked on that metric (FR-004)** -- never define the metric here.
- The semantic model is ready (`semantic_model_ready: pass`). Not ready => stop,
  name the missing readiness, and do not proceed to design.
- Load the existing Report Intent (if any) first. An existing intent is
  presented for confirmation or supersession -- **never silently overwritten**.

## How it runs

1. **Ground every question in the request and the approved contracts.** Focus
   on: audience, purpose, supported decision, review cadence, primary business
   questions, metric roles by name (outcome/driver/guardrail), comparisons,
   dimensions and filters, expected actions and exceptions, pages/drill paths,
   mobile/accessibility/language/RTL needs, and exclusions/non-goals.
2. **Refuse to commit a vague request.** "Build an executive dashboard" gets
   focused disambiguating questions; the intent is NOT committed until
   `audience`, `purpose`, and at least one primary `business_questions` entry
   are resolved (US1 AC#4).
3. **Batch the obvious low-risk items** into one owner confirmation (e.g.
   comparison phrasing, filter defaults). Critical decision types are never in
   a batch. The owner may exclude any item; the remainder is approved in one
   action and each excluded item becomes an individual pending question.
4. **Ask critical decisions individually.** The intent's own approval
   (`report_intent_approval`) is a critical decision type, authority class
   `report_owner` (`contracts/knowledge/approval-authority.yaml`); it requires
   an explicit, per-decision approval from a named human -- the agent never
   self-grants it (Principle V).
5. **Reference metrics by name only.** Every `outcome_metrics` /
   `driver_metrics` / `guardrail_metrics` entry names an approved metric
   contract (`name` + `store_ref` + `status_required: pass`) -- the same triple
   shape as `dashboard-page-blueprint.yaml`'s `required_metric_contracts`.
   There is no formula/DAX field. A metric with no approved contract is a gap:
   record it, route it upstream, and leave the intent `blocked` on that metric
   -- never invent the metric here.
6. **Mask suspected PII by default.** Any PII-adjacent dimension/filter follows
   the shipped masking behavior; unmasking requires an explicit owner
   instruction, recorded as a `pii_handling` decision.
7. **Record the artifact and the decision.** Write
   `mappings/<subject-area>/design/report-intent.yaml` per
   `templates/report-intent.yaml`, and record the `report_intent_approval`
   decision in the project Decision Store once a named human of authority
   class `report_owner` approves. Unanswered items stay `pending` /
   `needs_user_input`; a metric gap stays `blocked` with a matching
   `blocking_reasons` entry.

## Exit

Report the current gate verdict for the `report_intent` stage
(`contracts/report/report-intent.yaml`) and the next allowed stage
(`dashboard_blueprint`) -- which stays blocked until this intent's
`report_intent_approval` is valid (an unapproved intent yields `blocked`, never
a false `pass`).

## Hard stops (never)

- Never self-grant `report_intent_approval` (Principle V;
  `never_self_grant_approval`).
- Never advance a readiness stage.
- Never emit a numeric confidence score (`never_fabricate_a_confidence_score`).
- Never define metric meaning here (route to `retail-kpi-knowledge` /
  the metric-contract layer).
- Never display raw suspected-PII values by default, and never commit them.
- Never invent a metric contract to make a reference resolve; record the gap
  and leave the intent blocked instead (FR-003/FR-004).

Attribution

KemetraKemetra
View sourceSee grades on GitHubMore from Kemetra →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Rank Tracker

This skill helps you track, analyze, and report on keyword ranking positions over time. It monitors both traditional SERP rankings and AI/GEO visibility to provide comprehensive search performance insights.

1821 votes

Youtube Competitor Analyzer

Find and analyze YouTube competitor channels using YouTube Data API v3. Discover competitors through keyword search, category matching, content similarity, and related channel discovery. Compare metrics, content strategies, and market positioning. Use when users want to (1) Find competitors for their YouTube channel, (2) Analyze competitor performance metrics, (3) Compare their channel against competitors, (4) Identify content gaps and opportunities, (5) Benchmark against similar creators, (6...

31 votes

Xlsx

Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .xltx, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or from other data sources; or convert between tabular file formats. Trigger especially when the user references a spreadsheet file by name or path — even casually (like \"the...

1798860 votes

Weather Fetcher

Instructions for fetching current weather temperature data for Karachi, Pakistan from wttr.in API

672240 votes

Weather

Get current weather and forecasts (no API key required).

486960 votes
View all in data →