본문으로 건너뛰기
cccskills
무료GitHub에 공개

chronote-product-analytics

Analyze Chronote product adoption with PostHog and Langfuse, including active users, meetings, feature usage, AI telemetry, and privacy-safe resolution of active Discord guild IDs to live server names.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구DiscordAWS
설치 방법 보기

포함된 파일(3)

  • SKILL.md4.4 KB
  • agents/openai.yaml122 B
  • scripts/resolve-production-guilds.mjs4.5 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Chronote Product Analytics

Use PostHog for product behavior and Langfuse for model telemetry. Keep website visitors, authenticated product users, guilds, and AI generations distinct.

Product metrics

  • Confirm the active PostHog project is Chronote before querying.
  • Read the live event schema before relying on event or property names.
  • Unless the user chooses another definition, count a product-active user as a unique person who emitted meeting_started, meeting_completed, or ask_question_asked. Report anonymous website visitors separately.
  • Use bounded UTC ranges. State whether the current day is partial.
  • Report meeting starts and completions separately. Equal totals are evidence of aggregate completion, not a proven one-to-one pairing.
  • Use the langfuse-metrics skill for aggregate model volume, cost, and latency. Do not treat healthy telemetry as output-quality evidence.
  • For the daily operating view, run its cost-report command over the same UTC window as PostHog. Supply completed meetings and transcribed minutes as denominators, and report fully-unpriced model groups alongside attributed cost. This is operational cost accounting, not an OpenAI invoice reconciliation.
  • Do not retrieve questions, answers, notes, transcripts, or identities when aggregate evidence answers the request.

Acquisition attribution

Prefer an explicit server_install_attributed event when it exists. Report only the sanitized source, medium, campaign, landing path, referrer domain, and CTA location; never expose a browser/session id, Discord user id, full URL or query string, raw user agent, or precise geography.

Older server_installed events are keyed to a guild while website activity is keyed to a browser or signed-in user, so they cannot be joined deterministically. For those installs, a bounded timestamp correlation can produce an inference:

  1. Read the guild's server_installed timestamp.
  2. In a short lookback before that timestamp, group $pageview and add_to_discord_clicked by landing path, referrer domain, UTM source, and CTA location.
  3. Call the source a strong inference only when there is one coherent path, no competing click path, and the final install click is within a few minutes of the install. Otherwise report acquisition as UNKNOWN.
  4. Use guild-scoped onboarding events only to validate subsequent activation; do not retrieve or report the acting person's identity.

Always label timestamp correlation as inferred rather than deterministic. A tight sequence such as one referral landing, one CTA path, an installation seconds later, completed onboarding, and immediate meeting usage is useful product evidence, but it is not a cryptographic join.

Resolve active guild names

PostHog intentionally stores guild_id, not the mutable guild name. Group the requested product events by guild_id first, including only the counts and time bounds needed for the question.

Resolve names in this order:

  1. Match IDs visible in the signed-in Chronote server picker when the operator already has access.

  2. For remaining IDs, run scripts/resolve-production-guilds.mjs with authorized production AWS access:

    node .codex/skills/chronote-product-analytics/scripts/resolve-production-guilds.mjs --guild-id <id> --guild-id <id>
    

    The helper reads meeting-notes-prod/discord-bot-token from Secrets Manager in us-east-1, verifies that Discord identifies it as the Chronote bot, and prints only the requested IDs and names. Override --secret-id, --region, or --expected-bot-id only when the target environment is explicitly different.

  3. If AWS authentication is unavailable, stop and request the appropriate read-only login. Do not substitute an unrelated local bot token, dispatch a workflow, expose a secret, or persist guild names into analytics.

Treat an ID absent from the bot guild list as unresolved; it may represent a removed installation or the wrong environment. Report that distinction rather than guessing a server name.

This skill is read-only. It does not authorize production configuration, analytics instrumentation, billing, deployment, or Discord mutations.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Use when a change affects user-visible behavior at docs.chronote.gg and needs public documentation. Covers where docs live (apps/docs-site vs docs/), authoring checklist, yarn docs:check, and Algolia config. Trigger when the user mentions docs, release notes, what's-new, or user-facing PR changes.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Chronote-gg/Chronote42026년 10월 19일 업데이트

Investigate errors, incidents, or product ideas using both internet research and repo-wide codebase research, then propose a concrete changeset plan with clarifying questions before any implementation. Use when a user asks to investigate, root-cause, or plan changes, or when an Issue or PR is referenced and needs a plan.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Chronote-gg/Chronote42026년 10월 19일 업데이트

Query aggregate Langfuse cost, volume, latency, and model telemetry efficiently with Metrics API v2. Use for dashboards, rollout checks, usage summaries, and cost or latency comparisons; use Observations API v2 instead when individual rows are actually required.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Chronote-gg/Chronote42026년 10월 19일 업데이트

Configure and debug MCP servers for Claude Code, OpenCode, and Codex CLI, including auth headers, scope, and validation checks. Use when MCP tools fail to connect, when an MCP server returns 401/404/HTML, or when adding a new MCP server to this repo.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Chronote-gg/Chronote42026년 10월 19일 업데이트

Configure and debug MCP servers for OpenCode, Codex CLI, and Claude Code, including auth headers, scope, and validation checks. Use when MCP tools fail to connect or when adding a new MCP server.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Chronote-gg/Chronote42026년 10월 19일 업데이트

Use every time you push a commit to an active pull request, to verify the PR is truly stable before reporting merge readiness. Covers the post-push wait window, AI review audit (Copilot/Greptile/Codex), and the gh commands to snapshot PR state. Trigger on "I pushed" or "is the PR ready to merge".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Chronote-gg/Chronote42026년 10월 19일 업데이트

Chronote-gg의 스킬 모두 보기

이 스킬의 문제 신고