Files
zeekayandHanzo Dev b497511c04 no hogs: stamphog and review_hog are stamp and review
Both are Django apps, and both pin `label` in apps.py — "stamp" and "review".
django_migrations keys a row on (app_label, name), and app_label comes from that
pin and not from the import path, so moving the directory does not orphan a
single migration. All six stay where they are, untouched.

  products/stamphog -> products/stamp     name = products.stamp.backend
  products/review_hog -> products/review  name = products.review.backend
  StamphogScene/ -> StampScene/, and stamphogSceneLogic.ts with it

189 files follow. An earlier attempt at this move failed twice for reasons worth
recording: `git mv A B` where B exists puts A INSIDE B, and a stray
products/stamp/node_modules from an abandoned run was enough to make B exist —
the app ended up nested two deep. And `git ls-files` does not list a file moved
with plain mv and not yet staged, so a pass over "every tracked file" silently
skips it; that is how StampScene.tsx kept importing ./stampSceneLogic after the
file beside it had been renamed back.

bin/check-imports-are-committed: all first-party imports across 15,843 files
resolve.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-09 10:18:18 -07:00

212 lines
8.4 KiB
YAML

# MCP tool definition — tool entries are scaffolded from the OpenAPI schema.
# The tool list and operation IDs are kept in sync automatically:
# pnpm --filter=@hanzo/mcp run scaffold-yaml -- --sync-all
#
# To enable a tool, set enabled: true and add required scopes + annotations.
# All other fields (title, description, enrich_url, etc.) are yours to configure.
category: Stamp
feature: stamp
url_prefix: /stamp
ui_apps: {}
tools:
stamp-digest-channels-create:
operation: stamp_digest_channels_create
enabled: true
scopes:
- stamp:write
annotations:
readOnly: false
destructive: false
idempotent: false
title: Create stamp digest channel
description: >
Route an audience's daily merged-PR digest to a Slack channel. Requires `audience_key`,
`slack_integration_id` (must be a Slack integration belonging to this team), and `slack_channel_id`.
feature_flag: stamp
stamp-digest-channels-delete:
operation: stamp_digest_channels_destroy
enabled: true
scopes:
- stamp:write
annotations:
readOnly: false
destructive: true
idempotent: true
title: Delete stamp digest channel
description: >
Disable a digest channel by id. This keeps the row as a disabled tombstone (so auto-provisioning can't
recreate and re-post it) rather than hard-deleting it — equivalent to `stamp-digest-channels-update` with
`enabled: false`.
feature_flag: stamp
stamp-digest-channels-list:
operation: stamp_digest_channels_list
enabled: true
scopes:
- stamp:read
annotations:
readOnly: true
destructive: false
idempotent: true
list: true
title: List stamp digest channels
description: >
List Slack destinations for the daily merged-PR digest in this project. Each channel is keyed by
`audience_key` (e.g. a repo or team bucket) and reports how it was resolved (manual, name match, repo policy
config) and whether it's currently enabled.
feature_flag: stamp
stamp-digest-channels-partial-update:
operation: stamp_digest_channels_partial_update
enabled: false
stamp-digest-channels-retrieve:
operation: stamp_digest_channels_retrieve
enabled: false
stamp-digest-channels-update:
operation: stamp_digest_channels_update
enabled: false
stamp-digest-runs-list:
operation: stamp_digest_runs_list
enabled: true
scopes:
- stamp:read
annotations:
readOnly: true
destructive: false
idempotent: true
list: true
title: List stamp digest runs
description: >
List posted (or attempted) daily digest runs, newest first. Filter by `digest_channel` to see a single
channel's history. Each run reports its status, how many merged PRs it summarized, and the Slack message
timestamp it posted to. The rendered summary text itself lives only in the Slack post.
feature_flag: stamp
stamp-digest-runs-retrieve:
operation: stamp_digest_runs_retrieve
enabled: false
feature_flag: stamp
stamp-pull-requests-get:
operation: stamp_pull_requests_retrieve
enabled: true
scopes:
- stamp:read
annotations:
readOnly: true
destructive: false
idempotent: true
title: Get stamp pull request
description: |
Get a single pull request by id, including its repository, title, author, head branch, and merge details.
feature_flag: stamp
stamp-pull-requests-list:
operation: stamp_pull_requests_list
enabled: true
scopes:
- stamp:read
annotations:
readOnly: true
destructive: false
idempotent: true
list: true
title: List stamp pull requests
description: >
List pull requests stamp has seen in this project, newest first. Filter by `pr_number` for a specific PR,
or by `merged` (true/false) to separate open work from merged history. Each entry includes the repository,
author, head branch, merge state, and diff size (additions/deletions/changed_files) once merged.
feature_flag: stamp
stamp-repo-configs-create:
operation: stamp_repo_configs_create
enabled: false
stamp-repo-configs-delete:
operation: stamp_repo_configs_destroy
enabled: true
scopes:
- stamp:write
annotations:
readOnly: false
destructive: true
idempotent: true
title: Delete stamp repo config
description: >
Delete a repo config by id. This removes stamp's review and digest configuration for the repo entirely —
prefer `stamp-repo-configs-update` with `enabled: false` if you only want to pause review temporarily.
feature_flag: stamp
stamp-repo-configs-get:
operation: stamp_repo_configs_retrieve
enabled: true
scopes:
- stamp:read
annotations:
readOnly: true
destructive: false
idempotent: true
title: Get stamp repo config
description: >
Get a single repo config by id. Returns the provider, repository full name, installation id, and the enabled
/ digest_enabled flags.
feature_flag: stamp
stamp-repo-configs-install-info-retrieve:
operation: stamp_repo_configs_install_info_retrieve
enabled: false
stamp-repo-configs-list:
operation: stamp_repo_configs_list
enabled: true
scopes:
- stamp:read
annotations:
readOnly: true
destructive: false
idempotent: true
list: true
title: List stamp repo configs
description: >
List repos stamp is configured for in this project. Each config controls whether stamp reviews pull
requests for a repo (`enabled`), whether merged PRs feed the daily digest (`digest_enabled`), and which
GitHub App installation authorizes the calls. Use this to check whether a repo is already onboarded before
creating a new config.
feature_flag: stamp
stamp-repo-configs-partial-update:
operation: stamp_repo_configs_partial_update
enabled: false
stamp-repo-configs-sync-installation-create:
operation: stamp_repo_configs_sync_installation_create
enabled: false
stamp-repo-configs-update:
operation: stamp_repo_configs_update
enabled: false
stamp-review-runs-get:
operation: stamp_review_runs_retrieve
enabled: true
scopes:
- stamp:read
annotations:
readOnly: true
destructive: false
idempotent: true
title: Get stamp review run
description: >
Get a single review run by id — the record of one automated review pass over a pull request. Returns the
lifecycle `status`, final `verdict`, and an allowlisted `gate_result` (gate_blocked, final_verdict). The raw
reviewer transcript, PR payload, and policy contents are deliberately not exposed — they carry repository
content a project member without repo access must not read.
feature_flag: stamp
stamp-review-runs-list:
operation: stamp_review_runs_list
enabled: true
scopes:
- stamp:read
annotations:
readOnly: true
destructive: false
idempotent: true
list: true
title: List stamp review runs
description: >
List stamp's automated review runs for pull requests in this project, newest first. Filter by
`repository`, `pr_number`, or `status` to find why a specific PR got its verdict. Each run reports its
lifecycle `status`, final `verdict`, and the deterministic gate outcome (`gate_result`) computed before the
reviewer ran. The raw reviewer output (full reasoning transcript) is omitted from list results — use
`stamp-review-runs-get` for the full detail.
feature_flag: stamp
response:
exclude:
- output