You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat(feedback): move to the 0.11.3 survey and send on skip - #382
The PostHog feedback survey is replaced for 0.11.3 (01a0b1a0-… → 01a0c7b9-…). Seven questions, only the first required, every question id new, so the key-to-id map is rebuilt rather than edited.
Contract.ruleKind (required) replaces goal; verbatim and completed become optional; agents and mostValuableRule are new optional keys. The map in survey/constants.ts stays the only place ids live and buildSurveyResponse is unchanged.
Behaviour. The invite asks for one thing, the user's own words, and offers two replies: words or skip. Either way the agent fetches agent feedback and sends its own account of the session; skip just leaves verbatim out. Six of the seven answers are the agent's observations, which are telemetry the user already opted into by leaving it enabled, so no reply the invite offers produces nothing. feedback dismiss stays as the explicit opt-out for a user who volunteers "don't send anything", and the invite tells the agent to point them at DO_NOT_TRACK / TASKLESS_TELEMETRY_DISABLED for the rest.
Recipes.feedback-invite v2 and feedback v2. The old one-permitted follow-up (to fill completed) is gone; completed is optional and Unknown exists.
The cadence store is keyed by survey id, so every install is invited once more. patch; the change is archived on this PR (dry-run: 19 → 23 scenarios, none dropped).
.prior-review.json contains no reviewThreads and no reviews, only the single top-level comment that triggered this run (@claude /review). There is nothing previously raised to classify as addressed or still-open, so this is the first review of this PR: the whole diff below is assessed fresh.
Read .prior-review.json
Gather PR diff and metadata via gh pr diff / gh pr view
This is a well-scoped, internally consistent change: SURVEY_ID, the FeedbackKey map, the Zod schema, both recipes, the spec, and the tests all agree with each other and with the design/proposal docs. buildSurveyResponse stays a generic loop over SURVEY_QUESTIONS, so it needed no change and got none. The archived spec delta (openspec/changes/archive/2026-09-21-feedback-survey-0-11-3/specs/cli-feedback-survey/spec.md) restates both MODIFIED Requirements blocks in full under their original titles, matching what landed in openspec/specs/cli-feedback-survey/spec.md — no scenario silently dropped, no requirement silently renamed (the trap called out in this repo's CLAUDE.md). I did not find any correctness bugs in the schema, cadence, or command logic.
[New] Stale doc comment referencing a removed key packages/cli/src/survey/constants.ts:6
The module docblock still reads:
"it writes verbatim, goal, and so on, and feedback send translates"
goal was removed from FeedbackKey/inputSchema by this PR and replaced with ruleKind (required). This comment is the one place in src/ that wasn't updated — a goal/FeedbackKey grep confirms no other stale reference exists. Low severity (comment only, no runtime effect), but it now describes a key that no longer exists, which is exactly the kind of drift this same docblock warns about two paragraphs later ("A question's id is PostHog's and changes whenever the question does").
No other findings survived review. In particular, I checked and found no issues in:
The optional-key/non-blank enforcement (.trim().min(1).optional() ordering in schemas/feedback.ts) — correctly rejects whitespace-only optional answers while allowing omission, and is covered by feedback-schema.test.ts.
The cadence gate (survey/invite.ts, survey/cadence.ts) — unchanged by this PR, and correctly keyed by SURVEY_ID so the new survey id naturally re-invites every install, as the proposal claims.
The invite/recipe branching (skip/silence/unrelated → send with verbatim omitted; explicit refusal → feedback dismiss + telemetry opt-out line) — the prose in both .md files, the spec requirement, and feedback-recipes.test.ts all agree.
Numbered steps in feedback.md were correctly renumbered after the follow-up-question step was removed (no dangling "step 2" references elsewhere).
The changeset's patch bump is correct under this repo's 0.y.z rule (surface addition/removal pre-1.0).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The PostHog feedback survey is replaced for 0.11.3 (
01a0b1a0-…→01a0c7b9-…). Seven questions, only the first required, every question id new, so the key-to-id map is rebuilt rather than edited.Contract.
ruleKind(required) replacesgoal;verbatimandcompletedbecome optional;agentsandmostValuableRuleare new optional keys. The map insurvey/constants.tsstays the only place ids live andbuildSurveyResponseis unchanged.Behaviour. The invite asks for one thing, the user's own words, and offers two replies: words or
skip. Either way the agent fetchesagent feedbackand sends its own account of the session;skipjust leavesverbatimout. Six of the seven answers are the agent's observations, which are telemetry the user already opted into by leaving it enabled, so no reply the invite offers produces nothing.feedback dismissstays as the explicit opt-out for a user who volunteers "don't send anything", and the invite tells the agent to point them atDO_NOT_TRACK/TASKLESS_TELEMETRY_DISABLEDfor the rest.Recipes.
feedback-invitev2 andfeedbackv2. The old one-permitted follow-up (to fillcompleted) is gone;completedis optional andUnknownexists.The cadence store is keyed by survey id, so every install is invited once more.
patch; the change is archived on this PR (dry-run: 19 → 23 scenarios, none dropped).