Skip to content

fix(package-index): validate current package contract - #152

Open
Giselle Rogers (gbrogers) wants to merge 1 commit into
mainfrom
fix/package-index-v2-validation
Open

fix(package-index): validate current package contract#152
Giselle Rogers (gbrogers) wants to merge 1 commit into
mainfrom
fix/package-index-v2-validation

Conversation

@gbrogers

Copy link
Copy Markdown
Contributor

Summary

  • updates package-index validation for the current Package Manager contract, including installPolicy and package.json manifests
  • accepts packageManagerVersion/schemaVersion 1 and 2 while keeping v1 strict
  • validates v2 task and workflow assets, including workflow source files for indexed packages

Validation

  • node --test scripts/validate-runneth-package-index.mjs
  • node --test scripts/validate-catalog.mjs

@gbrogers
Giselle Rogers (gbrogers) requested a review from a team July 15, 2026 17:27
Eric Smith (motionBuilderEric) added a commit that referenced this pull request Jul 23, 2026
…ect-time auto-install and self-activating daily sync (#159)

* feat(package): add voc-data-pull v0.1.0, auto-installed on VoC platform connect

Installer package that pulls raw voice-of-customer data - product reviews,
support conversations, and ad comments - from a connected platform into
standardized files in the org brain: one file per review/ticket/comment,
flat metadata header + body, untouched platform payload preserved in every
file (PDEC-9193, PR 1 of 2).

- skill/SKILL.md: the pull workflow - resolve the connection path
  (Pipedream OAuth via integrations proxy, stored secret via secure-fetch,
  Motion native for Meta ad comments), follow the platform recipe, write
  files under /agent/brain/data-sources/<platform>/. Hard boundaries:
  read-only against platforms, bounded pulls (12-month default, page caps),
  never write into /agent/brain/integrations/<source>/, author_contact
  nulled pending the PII policy call.
- skill/references/platform-recipes.md: per-platform endpoints, pagination,
  discovery steps, and unified-template field mappings with evidence
  levels. Judge.me/Gorgias/Intercom live-verified; Trustpilot/Yotpo
  doc-grounded pending first connects; Junip blocked on a dead key;
  Okendo/Stamped are secrets-path (no Pipedream app exists); Meta ad
  comments via motion meta creative-comments.
- skill/templates/: copyable review and support-conversation file skeletons
  (support shape follows the Ramy Brook Gorgias precedent:
  daily/<date>/ticket-<id>.md, metadata top, full conversation below).
- package.json manifest: one directory resource installing the skill to
  agent_skills/voc-data-pull; installPolicy auto so matching intent
  installs with no manual step, updatePolicy auto so recipe fixes roll out.
- package-index.json: first indexed package. Categories list one
  integration:<slug> per platform (judge_me, trustpilot, yotpo, junip,
  gorgias_oauth, intercom, okendo, stamped) because the VM reconciler
  matches literal connected slugs - no invented family category.
- scripts/validate-runneth-package-index.mjs: aligned with the current
  package-manager contract (package.json manifests, installPolicy,
  packageManagerVersion 1|2, manifest v2 tasks/workflows, backend-github
  sources). Same content as #152; whichever merges first rebases clean.
- Card files (use-case.json, README.md, marketing.md) included per repo
  structure; slug added to catalog excluded[] - not a public-site use case.

CI note: the fleet-approval gate fires (new auto-installable package) and
needs the runneth-fleet-change-approved label after core engineering
approval.

* refactor(voc-data-pull): move under packages/ per installer package convention

* fix(voc-data-pull): resolve review findings - id-keyed ticket paths, honest date-bound claims, PII disclosure, fleet-gate fingerprint

* fix(voc-data-pull): render metadata as fenced yaml block instead of frontmatter

* feat(voc-data-pull): human-readable file layout - headline, bold-label header, collapsed metadata; drop raw payloads

* feat(voc-data-pull): backend-github source + activation package instruction

Switch the index entry's package source to backend-github per repo package
conventions, so VM artifact fetches route through the backend cache instead
of raw GitHub (bump indexRevision to 2026-07-22-01).

Add a package_instruction resource (instructions/activation.md) that lands
in the agent's standing instructions on install: Runneth offers the first
pull when a covered VoC platform is connected and no data-sources pull
exists, runs the skill on request, and never starts a pull without user
confirmation. Install stages files only; this closes the awareness gap
without auto-running anything.

* fix(voc-data-pull): date window is the coverage contract - page cap is per-run batching, never a coverage limit

* feat(voc-data-pull): add Reddit - integration:reddit category, community_post source type, recipe + template

* feat(voc-data-pull): routine-based recurring sync via activation instruction

activation.md: routine absence triggers setup - creates voc-sync-<platform> (cron 0 6 * * *), kicks the backfill run, silent-success/delivered-failure delivery, Junip key gate; pulls never run in-conversation. SKILL.md: new Recurring sync runs section owns the incremental window (empty folder = trailing 12 months, else newest created_at minus 2 days, updated_at for tickets), multi-account iteration, disconnect no-op; dropped the confirm-before-starting gate. README updated to match.

* fix(voc-data-pull): review fixes - id-keyed contract, per-source write policy, routine routing

SKILL.md: the id-keyed filename contract now survives existing folder conventions (adopt surrounding layout, keep id-keyed names); explicit re-pull write policy per source type (reviews skip, tickets overwrite on fresher updated_at, comments/posts overwrite inside the pull window since engagement mutates); user pull requests route through the sync routine; description covers Reddit and community posts. activation.md: routine prompt defers run behavior to the skill's recurring-sync rules instead of restating it; first kick described as a sync run whose window the skill determines. README: drop the stale no-automatic-post-install-trigger gap, describe the header shape directly, point the platform list at the Step 1 table.

* fix(voc-data-pull): move output to data-sources/voc/<platform>/ with flat type-prefixed filenames

* feat(voc-data-pull): manual install policy, ask-only sync setup

installPolicy flips to manual - the team installs per VM (package intent add-optional voc-data-pull + package sync); updatePolicy stays auto so installed copies track main. Setup is strictly manually triggered: the recurring-sync procedure (routine-absence check, routine add with cron 0 6 * * *, first-run kick, Junip gate, never pull in-conversation) moves into SKILL.md and runs only when asked, directly or via an onboarding run - nothing happens just because a platform is connected. The activation instruction slims to a pointer stating the same. Once set up, the daily routine refreshes data on its own. Categories retained for a future auto-install flip.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant