mirror of
https://github.com/hanzoai/insights.git
synced 2026-10-30 16:15:31 +00:00
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]>
212 lines
8.4 KiB
YAML
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
|