From a77901e749766a6bfe051c9c7d8eec918965f9e4 Mon Sep 17 00:00:00 2001 From: Hyo Date: Thu, 13 Aug 2026 06:42:15 +0900 Subject: [PATCH 1/3] docs: refine ecosystem and writing workflows --- .claude/commands/commit.md | 4 +- .claude/skills/loop-review/SKILL.md | 18 + .codex/skills/generate-doc/SKILL.md | 41 +- .codex/skills/generate-doc/agents/openai.yaml | 2 +- .codex/skills/loop-review/SKILL.md | 129 +++++ .codex/skills/loop-review/agents/openai.yaml | 4 + .codex/skills/openiap-workflows/SKILL.md | 7 +- .cursor/rules/openiap-ssot.mdc | 15 + AGENTS.md | 33 +- knowledge/README.md | 1 - knowledge/_claude-context/context.md | 296 ++--------- knowledge/internal/05-docs-patterns.md | 51 ++ knowledge/internal/08-gv-cloud-workspaces.md | 237 --------- .../docs/src/components/EcosystemDiagram.tsx | 88 +++- packages/docs/src/lib/images.ts | 14 + .../src/pages/docs/setup/store/onside.tsx | 7 +- .../docs/src/pages/docs/updates/releases.tsx | 475 +++++------------- .../docs/src/styles/ecosystem-diagram.css | 143 +++++- 18 files changed, 684 insertions(+), 881 deletions(-) create mode 100644 .claude/skills/loop-review/SKILL.md create mode 100644 .codex/skills/loop-review/SKILL.md create mode 100644 .codex/skills/loop-review/agents/openai.yaml create mode 100644 .cursor/rules/openiap-ssot.mdc delete mode 100644 knowledge/internal/08-gv-cloud-workspaces.md diff --git a/.claude/commands/commit.md b/.claude/commands/commit.md index 9230f5d5c..72ae20dc4 100644 --- a/.claude/commands/commit.md +++ b/.claude/commands/commit.md @@ -47,8 +47,8 @@ Inspect the complete commit message, PR title, and PR body before sending them. If the staged changes only touch internal agent/workflow files, do not push or create a PR unless the user explicitly asked to publish, PR, or merge them. Internal workflow files include `.claude/commands/`, `.claude/skills/`, -`.codex/skills/`, `AGENTS.md`, `CLAUDE.md`, `GEMINI.md`, and agent -automation notes. +`.codex/skills/`, `.cursor/rules/`, `AGENTS.md`, `CLAUDE.md`, `GEMINI.md`, and +agent automation notes. For those internal-only changes, prefer a local commit or local working-tree change and report the files changed. If the user explicitly asks to open or diff --git a/.claude/skills/loop-review/SKILL.md b/.claude/skills/loop-review/SKILL.md new file mode 100644 index 000000000..f1cdc5b77 --- /dev/null +++ b/.claude/skills/loop-review/SKILL.md @@ -0,0 +1,18 @@ +--- +name: loop-review +description: "Run OpenIAP's complete latest-main-to-merge review loop: review-self, commit and PR, five-minute CodeRabbit and CI polling, fixes, verification, and clean-head merge." +--- + +# Loop Review (Claude Code) + +The canonical workflow lives in `.codex/skills/loop-review/SKILL.md`. Read that +file first and follow it fully. + +Use Claude Code's matching skills or commands for each delegated phase: + +- `/review-self` for pre-PR stabilization and exact-head fallback review. +- `/commit --all --pr` for commit, push, PR, labels, and preview. +- `/review-pr ` for review threads, CodeRabbit, CI polling, and cleanup. +- `ScheduleWakeup` for every five-minute re-entry; never use a shell sleep loop. + +Do not merge until the canonical exact-head clean gate is satisfied. diff --git a/.codex/skills/generate-doc/SKILL.md b/.codex/skills/generate-doc/SKILL.md index a8cee4c93..874f41e35 100644 --- a/.codex/skills/generate-doc/SKILL.md +++ b/.codex/skills/generate-doc/SKILL.md @@ -59,10 +59,10 @@ Before adding a release card, inspect the newest entries and package tags. belong to the same release train, expand that card into the single consolidated release entry and advance its date and title. Do not create a second card for the package versions. -- Structure a consolidated train in this order: a short `Common changes` - summary, hosted IAPKit changes, versioned native and framework changes grouped - by package, migration or integration notes, and `Package Releases` at the - bottom (see the exact card layout in Editing Release Notes). +- Use only sections with distinct user-visible behavior or required action. + Keep any shared summary first, affected native and framework notes next, + migration or integration action after them, and `Package Releases` at the + bottom (see Editing Release Notes). - IAPKit and its MCP deploy as services and have no package version. Include their user-visible behavior in the consolidated card, but never invent an IAPKit item in the versioned `Package Releases` list. @@ -152,22 +152,34 @@ Follow the existing card pattern: Card section layout (mandatory for multi-package cards): -- Use `h5` headings only for shared groups, in this order: `Common changes` - (optional), `Shared spec and native packages`, `Framework libraries`, - `Integration notes` (or migration notes), then the bordered - `Package Releases` block. +- Use only the sections that contain information readers must act on. Keep them + in this order when present: `Common changes`, `Shared spec and native + packages`, `Framework libraries`, `Integration notes` (or migration notes), + then the bordered `Package Releases` block. - Never add one `h5` heading per platform or framework (no `Apple`, `Google`, - `React Native`, `Expo`, ... headings). Each package's changes are exactly one - `
  • ` inside the shared group list, written as + `React Native`, `Expo`, ... headings). Each package-specific behavior gets at + most one `
  • ` inside the shared group list, written as `package version - prose description` (for example `react-native-iap 16.0.2 - exposes ...`). - `Shared spec and native packages` holds `OpenIAP Spec`, `openiap-apple`, and `openiap-google` bullets; `Framework libraries` holds the framework SDK - bullets. Omit a bullet entirely when that package has no user-facing change. + bullets. Omit the section when it would be empty. +- A package whose only change is selecting a shared native dependency, + regenerating types, or republishing the same behavior belongs only in + `Package Releases`. Do not manufacture one boilerplate bullet per wrapper. +- One bullet may name multiple packages when the same user-visible behavior and + caveats apply to all of them. Keep distinct behavior in distinct bullets. - The July 29, 2026 card (`openiap-major-api-cleanup-2026-07-29`) and the August 4, 2026 card (`amazon-rvs-user-data-patch-train-2026-08-04`) are the reference implementations of this layout. +## Reader-First Writing Standard + +Apply the canonical standard in +`knowledge/internal/05-docs-patterns.md#reader-first-writing-standard` to every +new or edited release card. Render the result and remove repeated facts, +wrapper-only dependency boilerplate, and sections with no reader action. + ## Multi-package Release Trains The consolidated release page remains the release-note SSOT, but a release that @@ -180,9 +192,10 @@ project decision recorded from issue #206. - Group notable changes under the affected platform package or framework library (Google, Apple, IAPKit, React Native, Expo, Flutter, Godot, KMP, and MAUI). Omit groups with no user-facing change. -- Keep each group concise. State the behavior users gain or the regression that - was fixed; do not list commit mechanics, version-bump-only commits, generated - files, or repeated cross-framework boilerplate. +- Apply the Reader-First Writing Standard above. State the behavior users gain + or the regression that was fixed; do not list commit mechanics, + version-bump-only commits, generated files, or repeated cross-framework + boilerplate. - Put truly shared schema or release-process changes in one short shared group, then describe framework-specific wiring or caveats in the relevant framework group. diff --git a/.codex/skills/generate-doc/agents/openai.yaml b/.codex/skills/generate-doc/agents/openai.yaml index 3d10a6b06..e17201097 100644 --- a/.codex/skills/generate-doc/agents/openai.yaml +++ b/.codex/skills/generate-doc/agents/openai.yaml @@ -1,4 +1,4 @@ interface: display_name: "Generate OpenIAP Docs" short_description: "Document expected releases without duplicate trains" - default_prompt: "Use $generate-doc to update the existing unreleased OpenIAP card in place with common changes, per-package native and framework notes, and expected Package Releases links at the bottom." + default_prompt: "Use $generate-doc to update the existing unreleased OpenIAP card with concise user-visible changes for affected packages and the verified Package Releases links." diff --git a/.codex/skills/loop-review/SKILL.md b/.codex/skills/loop-review/SKILL.md new file mode 100644 index 000000000..d0c42ea31 --- /dev/null +++ b/.codex/skills/loop-review/SKILL.md @@ -0,0 +1,129 @@ +--- +name: loop-review +description: "Run OpenIAP's complete change-to-merge loop from the latest origin/main: create a semantic branch, implement and verify the requested change, run review-self until stable, commit and open a PR, poll CodeRabbit and CI every five minutes, fix and reverify findings, and merge only when the exact head is clean. Use when the user invokes $loop-review or explicitly asks for the recurring review-self, commit --pr, review-pr until clean, then merge workflow." +--- + +# Loop Review + +Own one OpenIAP change from a fresh `main` baseline through a verified merge. +Use the repository workflows as SSOT instead of duplicating their detailed +commands. + +## Load The Workflows + +Read these before acting: + +- `AGENTS.md` +- `.codex/skills/openiap-workflows/SKILL.md` +- `.codex/skills/review-self/SKILL.md` +- `.claude/commands/commit.md` +- `.claude/commands/review-pr.md` + +Load package conventions and specialized skills required by the changed paths. +An explicit `$loop-review` invocation or explicit natural-language request for +this complete loop authorizes the in-scope commit, push, PR, review replies, +thread resolution, and merge. It does not authorize deployment, publication, +release, or unrelated cleanup. + +## 1. Start From Current Main + +Before editing task files: + +1. Snapshot `git status --short --branch`. Preserve every existing change. +2. For a new task, require a clean worktree, then run `git fetch origin`, switch + to `main`, and run `git pull --ff-only origin main`. +3. Verify local `main` equals `origin/main`, then create a semantic branch named + according to `.claude/commands/commit.md`. +4. Record the starting main SHA. The implementation diff must descend from that + SHA. + +Never start new implementation on a stale local `main`. If invoked for work +already in progress, do not manually switch branches, stash, reset, or discard +it. Treat that as a resumed loop, verify its recorded or merge-base baseline, +and use the repository's guarded `rebase-main` workflow when an update from +`origin/main` is needed; that workflow owns its safeguard stash and branch +transitions. Stop for direction if an update would overwrite unrelated user +work. + +## 2. Implement And Verify + +Implement the requested scope and run the checks required by each touched path. +Keep generated files, documentation, previews, and knowledge context in sync +through their canonical workflows. Do not proceed while the working diff has a +known failing required check. + +## 3. Stabilize With Review Self + +Run `$review-self` immediately against the complete base-to-working-tree diff. +Fix every validated in-scope finding and rerun affected verification. Continue +with five-minute recurring wake-ups until two consecutive complete snapshots are +clean, as defined by the review-self skill. + +Do not emulate recurring review with a shell sleep loop. Keep the loop state out +of tracked files. Any material diff change resets the consecutive-clean count. + +## 4. Commit And Open The PR + +Follow `.claude/commands/commit.md --all --pr`: + +- Stage only files owned by the task. +- Use the required commit order and an English conventional commit message. +- Push the semantic branch and open an English PR against `main`. +- Add applicable repository labels. +- For a visible or interactive change, attach a preview recording under 10 MB. + Do not commit one-off preview media unless browser upload is blocked and the + documented fallback is required. + +Record the PR number and exact head SHA. A push invalidates all prior clean +review coverage. + +## 5. Review PR Until The Exact Head Is Clean + +Run `.claude/commands/review-pr.md` immediately, then re-enter it every five +minutes through the product's recurring wake-up mechanism. + +For every round: + +1. Fetch unresolved threads, review status, current head SHA, and required CI. +2. Fix all valid findings in one coherent batch; push, reply to the exact inline + comments, and resolve only fixed or outdated threads under the command rules. +3. Rerun the checks affected by the batch plus all previously failing checks. +4. Request CodeRabbit again after a head change. +5. If CodeRabbit is unavailable, use the exact-head one-pass `$review-self` + fallback defined by `review-pr`; never substitute another reviewer. +6. Keep polling while review or CI is pending. Do not rerun expensive unchanged + local checks on a no-op poll. + +Clean means all of the following hold for the same head SHA: + +- zero unresolved actionable review threads; +- CodeRabbit is clean, or its unavailable result has clean review-self fallback + coverage; +- every required CI check is terminal and successful or explicitly allowed to + skip by repository policy; +- the PR is mergeable and the branch contains every required update from main; +- the worktree is clean and the final diff has been reread. + +## 6. Merge And Close The Loop + +Immediately before merging, refetch the PR and confirm its head still equals the +clean reviewed SHA. Use the repository-supported merge method, defaulting to a +squash merge with branch deletion when no stricter policy applies. Never bypass +branch protection or merge a stale, pending, or failing head. + +After merge: + +1. Confirm the PR state is `MERGED` and record the merge commit. +2. Remove temporary review-trigger and terminal-unavailability comments as + required by `review-pr`. +3. Switch to `main` and fast-forward from `origin/main` only when doing so cannot + disturb other work. +4. Report the PR, merge commit, final checks, review coverage, and any skipped + item. Do not deploy or release unless separately requested. + +## Stop Conditions + +Stop without merging when a required choice lacks authority, the same finding +survives two fix attempts, an access blocker repeats under the source workflow's +threshold, or the exact head cannot satisfy the clean gate. Report the concrete +blocker; never describe a pending or partially reviewed PR as clean. diff --git a/.codex/skills/loop-review/agents/openai.yaml b/.codex/skills/loop-review/agents/openai.yaml new file mode 100644 index 000000000..17a8d8617 --- /dev/null +++ b/.codex/skills/loop-review/agents/openai.yaml @@ -0,0 +1,4 @@ +interface: + display_name: "Loop Review" + short_description: "Review, publish, and merge a clean OpenIAP change" + default_prompt: "Use $loop-review to start from the latest origin/main, stabilize the change, open a PR, address reviews, and merge it." diff --git a/.codex/skills/openiap-workflows/SKILL.md b/.codex/skills/openiap-workflows/SKILL.md index f7b4a8ff7..2b12ee44a 100644 --- a/.codex/skills/openiap-workflows/SKILL.md +++ b/.codex/skills/openiap-workflows/SKILL.md @@ -58,9 +58,10 @@ platform rows, connected-device rows, and explicit blocked/unsupported rows. ## Internal Workflow Change Guard Internal agent/workflow-only changes include `.claude/commands/`, -`.claude/skills/`, `.codex/skills/`, `AGENTS.md`, `CLAUDE.md`, `GEMINI.md`, -and agent automation notes. Do not create a branch, push, or open a PR for -those changes unless the user explicitly asks to publish, PR, or merge them. +`.claude/skills/`, `.codex/skills/`, `.cursor/rules/`, `AGENTS.md`, +`CLAUDE.md`, `GEMINI.md`, and agent automation notes. Do not create a branch, +push, or open a PR for those changes unless the user explicitly asks to publish, +PR, or merge them. If a user asks to update an internal workflow and does not explicitly ask for a PR, keep the change local and report the changed files. If a PR is already open diff --git a/.cursor/rules/openiap-ssot.mdc b/.cursor/rules/openiap-ssot.mdc new file mode 100644 index 000000000..317d7546b --- /dev/null +++ b/.cursor/rules/openiap-ssot.mdc @@ -0,0 +1,15 @@ +--- +description: OpenIAP repository instruction routing +globs: +alwaysApply: true +--- + +- Treat `AGENTS.md` as the root project instruction SSOT. `CLAUDE.md` and + `GEMINI.md` are symlinks to it; do not maintain separate copies. +- Before editing a package or library, read the relevant files linked from + `AGENTS.md`. +- For any user-facing documentation, apply + `knowledge/internal/05-docs-patterns.md#reader-first-writing-standard` and the + package convention. Keep prose concise, actionable, and free of repetition. +- Keep detailed rules in their canonical files. This Cursor adapter only routes + to them. diff --git a/AGENTS.md b/AGENTS.md index bb3b69e13..6592df69e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -15,7 +15,6 @@ This document provides an overview for AI agents working across the OpenIAP mono | Docs Patterns | [`knowledge/internal/05-docs-patterns.md`](knowledge/internal/05-docs-patterns.md) | | Git & Deployment | [`knowledge/internal/06-git-deployment.md`](knowledge/internal/06-git-deployment.md) | | Docs Consistency / SSOT | [`knowledge/internal/07-docs-consistency.md`](knowledge/internal/07-docs-consistency.md) (run `bun audit:docs` before pushing API/Type doc edits) | -| GV Cloud Workspaces | [`knowledge/internal/08-gv-cloud-workspaces.md`](knowledge/internal/08-gv-cloud-workspaces.md) | ## Monorepo Structure @@ -89,6 +88,16 @@ well-known APIs. Keep only what the code cannot show: platform quirks, non-obvio constraints, and why an obvious alternative was rejected. Full checklist in [`knowledge/internal/03-coding-style.md`](knowledge/internal/03-coding-style.md#keep-them-short--especially-ai-generated-ones). +### Reader-First Documentation + +Write every user-facing document for scanning and action. Lead with the outcome, +state each fact once, and remove filler, implementation narration, repeated +cross-package boilerplate, and detail that does not change user behavior. Keep +required compatibility, migration, safety, and platform caveats. Apply the +canonical standard in +[`knowledge/internal/05-docs-patterns.md`](knowledge/internal/05-docs-patterns.md#reader-first-writing-standard), +including its stricter release-note limits. + ### Platform Function Naming - **iOS functions**: Must end with `IOS` suffix (e.g., `syncIOS`, `getReceiptDataIOS`) @@ -205,9 +214,9 @@ Codex-compatible local skills in `.codex/skills/`, including `openiap-workflows` for mapping Claude slash-command workflows and `review-self` for repeated self-review of current work. -Codex discovers `review-self` from this repository. Install the globally unique -skills (`openiap-workflows` and `generate-doc`) into your local Codex home when -needed: +Codex discovers `review-self` and `loop-review` from this repository. Install +the globally unique skills (`openiap-workflows` and `generate-doc`) into your +local Codex home when needed: ```bash ./.codex/scripts/install-skills.sh @@ -217,9 +226,9 @@ After installation, ask Codex normally (for example, "review PR 65" or "resolve issue 88"), or explicitly mention `$openiap-workflows` or `$review-self`. -Keep `$review-self` repo-local. Other repositories provide project-specific -skills with the same name, so globally linking it would make the most recently -installed project overwrite the others. +Keep `$review-self` and `$loop-review` repo-local. Their review, merge, and +release-safety policies are project-specific; globally linking them could apply +the wrong repository workflow elsewhere. ## Claude Code Compatibility @@ -250,11 +259,20 @@ config at `.codex-plugin/mcp.json`) and `.claude-plugin/plugin.json` (Claude Code, inline MCP config). The `skills/` folder is shared by both agents, so keep its wording agent-neutral. +## Cursor Compatibility + +Cursor reads the root `AGENTS.md` and `CLAUDE.md`; because `CLAUDE.md` is a +symlink, both resolve to this SSOT. `.cursor/rules/openiap-ssot.mdc` is only a +short always-applied router to the root and docs SSOT. Keep detailed project +rules in `AGENTS.md` or `knowledge/internal/` instead of copying them into +Cursor-specific files. + ## Available Skills (Slash Commands / Codex Workflows) | Skill | Description | Usage | | -------------------- | -------------------------------------------------- | ------------------------------------- | | `$review-self` | Review and improve current work until stable | `$review-self` or `$review-self ` | +| `$loop-review` | Start from current main, review, PR, and merge | `$loop-review` | | `$rebase-main` | Pull main and safely rebase the current branch | `$rebase-main` | | `/review-pr` | Review PR comments, fix issues, resolve threads | `/review-pr 65` or `/review-pr ` | | `/audit-code` | Audit code against knowledge rules and latest APIs | `/audit-code` | @@ -298,4 +316,3 @@ All comprehensive rules are documented in [`knowledge/internal/`](knowledge/inte 5. **05-docs-patterns.md** - React modal patterns, component organization 6. **06-git-deployment.md** - Commit format, deployment workflows 7. **07-docs-consistency.md** - Docs/API/type consistency audits -8. **08-gv-cloud-workspaces.md** - Safe TabTabTab `gv` cloud workspace policy diff --git a/knowledge/README.md b/knowledge/README.md index ec837e33c..2ccf1eaff 100644 --- a/knowledge/README.md +++ b/knowledge/README.md @@ -52,7 +52,6 @@ knowledge/ │ ├── 05-docs-patterns.md # React modal patterns, components │ ├── 06-git-deployment.md # Git conventions, deployment │ ├── 07-docs-consistency.md # Documentation SSOT audits -│ ├── 08-gv-cloud-workspaces.md # Cloud workspace safety │ └── sandbox-subscription-billing-issue.md ├── external/ # REFERENCE - External APIs │ ├── amazon-iap-api.md # Amazon Appstore SDK reference diff --git a/knowledge/_claude-context/context.md b/knowledge/_claude-context/context.md index 3bc55ad24..d2b83c698 100644 --- a/knowledge/_claude-context/context.md +++ b/knowledge/_claude-context/context.md @@ -1,7 +1,7 @@ # OpenIAP Project Context > **Auto-generated for Claude Code** -> Last updated: 2026-08-12T17:12:21.769Z +> Last updated: 2026-08-12T21:14:33.370Z > > Usage: `claude --context knowledge/_claude-context/context.md` @@ -1540,6 +1540,27 @@ Before committing any changes: > **Priority: MANDATORY** > Follow these patterns when working on packages/docs. +## Reader-First Writing Standard + +Apply this standard to every user-facing page, guide, API reference, migration +note, example explanation, announcement, and release note: + +- Lead with the outcome, then identify who is affected and any required action. +- Use direct, active sentences and scannable headings or bullets. Keep one idea + per sentence where practical. +- State each fact once. Link to deeper reference material instead of repeating + the same explanation across sections or pages. +- Omit filler, internal implementation narration, generated-file inventories, + test-process narration, and details that do not change user behavior. +- Keep necessary compatibility, migration, security, data-safety, and + platform-specific caveats. Concision must not hide a requirement or risk. +- Prefer concrete behavior and commands over adjectives such as "robust", + "comprehensive", "seamless", or "modernized." + +Before finishing, read the rendered page as a user. Remove any sentence that +does not clarify what changed, how to use it, who is affected, or what action is +required. + ## Modal Pattern with Preact Signals ### Global Modal Management @@ -1725,6 +1746,36 @@ Framework implementation listings must be derived from Release notes are located at `packages/docs/src/pages/docs/updates/releases.tsx`. +### Release Note Writing Limits + +Apply the project-wide Reader-First Writing Standard above. Release notes are a +changelog for package users, not an implementation audit or a narrative of how +a release was produced. + +- Lead with the user-visible outcome. Do not restate the title or begin with + filler such as "Publishes the coordinated release train." +- Keep the opening summary to at most two sentences and roughly 50 words. +- Keep each bullet to one sentence and normally 30 words or fewer. Use up to 45 + only when a compatibility range or migration command cannot be split safely. +- State each fact once. Do not repeat one fix in the summary, native section, + every wrapper bullet, and integration notes. +- Describe behavior, compatibility, and required user action. Omit commit + mechanics, generated-file inventories, test matrices, release automation, + internal architecture, and dependency lists that do not change consumer + requirements. +- A package whose only change is selecting a native dependency, regenerating + types, or republishing shared behavior belongs only in `Package Releases`. + One bullet may group packages that have the same behavior and caveats. +- Use `Integration notes` only for required migration, configuration, or + compatibility action. Omit no-op reassurance and unchanged-platform lists. +- Link a PR or issue once where it supplies useful context. +- Prefer concrete verbs such as "fixes", "adds", "rejects", "requires", + "removes", and "preserves". Avoid vague verbs unless the sentence immediately + names the observable result. +- Preserve historical IDs, dates, versions, links, compatibility boundaries, + migration commands, and shipped behavior when shortening an existing note. + Leave a statement unchanged when its source evidence is incomplete. + ### Package-specific grouping for shared releases The docs release page is the canonical release-note SSOT, including when many @@ -2673,249 +2724,6 @@ bun run audit:docs Exit code 1 means at least one drift; 0 means clean. ---- - - - -# GV Cloud Workspace Policy - -> **Priority: MANDATORY** -> Follow this policy when using TabTabTab `gv` cloud environments with OpenIAP. - -`gv` can be useful for OpenIAP as a safe remote maintenance runner, not as a -release, signing, or production-credential environment. Treat every GV -workspace as an external cloud workspace with GitHub access and no local secret -trust by default. - -## Safe role for OpenIAP - -Use GV for secret-free OSS maintenance work: - -- Documentation edits, release notes, docs typecheck, and docs consistency - audits. -- `packages/gql` tests and schema/codegen review work that does not require - private credentials. -- `packages/kit` typecheck and unit tests that run without production env vars. -- PR review response work on isolated branches/worktrees. -- Long-running lint/test/build smoke checks that should survive local laptop - sleep or high local resource use. - -Do not treat GV as the source of truth for full OpenIAP release validation. -Native Apple signing, Play/App Store production credentials, package publishing, -and deployment stay in the existing local or CI release systems. - -## Required boundaries - -Always keep these boundaries unless the repository owner explicitly changes this -policy: - -- Onboard the repo with env capture disabled: - - ```bash - gv repo add . --skip-env - ``` - -- First test of any new GV version or environment should be: - - ```bash - gv repo add . --dry-run --skip-env - ``` - -- GitHub App access must be limited to the selected `hyodotdev/openiap` - repository. Do not grant all-repository access. -- Do not enable OpenAI/Codex auth mirroring for OpenIAP by default. -- Do not enable local profile, CLI, shell, editor, or credential mirroring by - default. -- Do not add production, payment, signing, release, or deployment secrets to GV. -- If credentials are ever needed for a GV experiment, use sandbox/test-only - credentials with explicit owner approval. - -## Forbidden commands and actions - -Never run or recommend these for OpenIAP GV work: - -```bash -gv repo add . --yes -gv repo env list --reveal -gv env info --reveal -gv env info --qr -``` - -Also do not upload, reveal, or sync: - -- `.env`, `.env.local`, `.env.*` -- App Store Connect `.p8` keys -- Google service-account JSON files -- signing keys, provisioning profiles, certificates, keystores, and JKS files -- npm, NuGet, Maven Central, CocoaPods, Fly, Convex, App Store, Google Play, or - payment provider credentials - -One-time GV login URLs and workspace URLs should be treated as sensitive access -links. Do not paste them into issues, PRs, public docs, or long-lived logs. - -## Known GV baseline for this repo - -Validated on 2026-05-08 with a GV `agent-sandbox` environment: - -- Repo onboarding with `--skip-env` completed. -- `gv repo env list --repo openiap --json` returned an empty env var list. -- OpenAI auth status was disabled. -- GitHub access was enabled only after selected-repository approval. -- Cloud clone was clean on `main` from - `https://github.com/hyodotdev/openiap.git`. -- The default environment had `node`, `npm`, `corepack`, `python3`, `git`, and - `docker`. -- The default environment did not have `bun`, `yarn`, `java`, `swift`, - `flutter`, or `dotnet`. -- No `.devcontainer/devcontainer.json` existed in the repo at validation time. - -Because Bun is not available in the default GV environment, the safe current -pattern is to run Bun checks inside Docker containers with the workspace mounted -read-only. - -## Day-to-day usage - -Use GV by opening an agent or editor attached to the cloud environment, then -give the task prompt there. The prompt is not a shell command. - -```bash -gv env use agent-sandbox - -# Open a cloud-attached agent/editor. -gv open opencode --env agent-sandbox -gv open codex --env agent-sandbox -``` - -Use `gv ssh` for direct terminal checks in the cloud workspace: - -```bash -gv ssh --env agent-sandbox -cd ~/workspace/openiap -git status --short --branch -``` - -For investigation-only work, make the boundary explicit: - -```text -Investigate issue 104 and the GQL -> SDK sync flow. -List the affected packages and propose a fix plan. -Do not change code, commit, push, create PRs, read env files, or run deploy, -release, signing, publish, or credential-related commands. -``` - -For maintenance work that may edit code, require an isolated branch and scoped -verification: - -```text -Create a branch named codex/. -Make the smallest safe change for the requested docs/GQL/kit issue. -Do not touch env, signing, release, deploy, or publish files. -Run only the relevant secret-free checks, then summarize the diff and results. -``` - -## Safe verification pattern - -Prefer an ephemeral Docker container with a read-only repo mount and an internal -copy: - -```bash -gv ssh --env agent-sandbox -- \ - 'set -eu - OPENIAP_PATH="${OPENIAP_PATH:-$HOME/workspace/openiap}" - test -d "$OPENIAP_PATH" - docker run --rm \ - -v "$OPENIAP_PATH:/src:ro" \ - -w /work \ - oven/bun:1.3.13 \ - bash -lc "cp -a /src/. /work && bun install --frozen-lockfile && bun run audit:docs"' -``` - -Why this pattern: - -- `:ro` prevents the container from writing to the GV checkout. -- `/work` is a temporary container copy, so `node_modules`, build output, and - generated files disappear when the container exits. -- It avoids syncing local env files or local uncommitted changes. - -After any GV run, verify both workspace cleanliness and env state: - -```bash -gv ssh --env agent-sandbox -- \ - 'cd ~/workspace/openiap && git status --short --branch' - -gv repo env list --repo openiap --json -``` - -## Verified safe smoke checks - -These checks have run successfully inside the Docker `/work` copy in the -GV read-only pattern, not directly in the default GV host shell. Bun is not -available in the default GV environment unless a future setup script installs -it. - -```bash -# GQL tests -cd packages/gql && bun run test - -# Docs typecheck -cd packages/docs && bun run typecheck - -# Kit typecheck and tests -cd packages/kit && bun run typecheck && bun run test - -# Docs consistency audit -bun run audit:docs -``` - -Use these as the first GV regression suite for docs, GQL, and IAPKit -maintenance work. - -## Out of scope for GV until explicitly proven - -Do not use GV as the default runner for: - -- `packages/apple` SwiftPM/Xcode signing or release workflows. -- iOS/macOS Godot, Expo, React Native, KMP, Flutter, or MAUI device builds. -- Android/KMP release publishing that needs Maven Central signing credentials. -- Flutter pub.dev, npm, NuGet, CocoaPods trunk, GitHub release, or deployment - publishing. -- Fly/Convex production deploys. -- Any flow that requires production IAP, payment, App Store Connect, Google - Play, or signing credentials. - -Linux-friendly Android/KMP checks may become reasonable after the repository has -a minimal GV/devcontainer setup with Java installed, but production credentials -still remain out of scope. - -## Branch and PR workflow - -Use GV for isolated work, not direct `main` edits: - -1. Start from the clean cloud clone. -2. Create a branch such as `codex/docs-gv-audit` or `codex/kit-gv-smoke`. -3. Run only secret-free checks. -4. Review `git diff` and `git status`. -5. Push only intentional source changes. -6. Open a PR for normal CI review. - -Do not push release, signing, or deployment changes from GV without explicit -owner approval. - -## Future improvement - -If GV becomes part of regular maintenance, add a minimal devcontainer or setup -script for the Linux-friendly subset: - -- Bun pinned to the root `packageManager`. -- Node/Corepack. -- Java for Gradle checks. -- Optional Android command-line tooling if needed. - -Do not add Swift, Xcode, Flutter, .NET, signing tools, or production secret -setup to the first GV devcontainer. Keep the first iteration small and focused -on docs, GQL, kit, and non-release Android/KMP smoke checks. - - --- diff --git a/knowledge/internal/05-docs-patterns.md b/knowledge/internal/05-docs-patterns.md index 2dd920353..8f780a667 100644 --- a/knowledge/internal/05-docs-patterns.md +++ b/knowledge/internal/05-docs-patterns.md @@ -3,6 +3,27 @@ > **Priority: MANDATORY** > Follow these patterns when working on packages/docs. +## Reader-First Writing Standard + +Apply this standard to every user-facing page, guide, API reference, migration +note, example explanation, announcement, and release note: + +- Lead with the outcome, then identify who is affected and any required action. +- Use direct, active sentences and scannable headings or bullets. Keep one idea + per sentence where practical. +- State each fact once. Link to deeper reference material instead of repeating + the same explanation across sections or pages. +- Omit filler, internal implementation narration, generated-file inventories, + test-process narration, and details that do not change user behavior. +- Keep necessary compatibility, migration, security, data-safety, and + platform-specific caveats. Concision must not hide a requirement or risk. +- Prefer concrete behavior and commands over adjectives such as "robust", + "comprehensive", "seamless", or "modernized." + +Before finishing, read the rendered page as a user. Remove any sentence that +does not clarify what changed, how to use it, who is affected, or what action is +required. + ## Modal Pattern with Preact Signals ### Global Modal Management @@ -188,6 +209,36 @@ Framework implementation listings must be derived from Release notes are located at `packages/docs/src/pages/docs/updates/releases.tsx`. +### Release Note Writing Limits + +Apply the project-wide Reader-First Writing Standard above. Release notes are a +changelog for package users, not an implementation audit or a narrative of how +a release was produced. + +- Lead with the user-visible outcome. Do not restate the title or begin with + filler such as "Publishes the coordinated release train." +- Keep the opening summary to at most two sentences and roughly 50 words. +- Keep each bullet to one sentence and normally 30 words or fewer. Use up to 45 + only when a compatibility range or migration command cannot be split safely. +- State each fact once. Do not repeat one fix in the summary, native section, + every wrapper bullet, and integration notes. +- Describe behavior, compatibility, and required user action. Omit commit + mechanics, generated-file inventories, test matrices, release automation, + internal architecture, and dependency lists that do not change consumer + requirements. +- A package whose only change is selecting a native dependency, regenerating + types, or republishing shared behavior belongs only in `Package Releases`. + One bullet may group packages that have the same behavior and caveats. +- Use `Integration notes` only for required migration, configuration, or + compatibility action. Omit no-op reassurance and unchanged-platform lists. +- Link a PR or issue once where it supplies useful context. +- Prefer concrete verbs such as "fixes", "adds", "rejects", "requires", + "removes", and "preserves". Avoid vague verbs unless the sentence immediately + names the observable result. +- Preserve historical IDs, dates, versions, links, compatibility boundaries, + migration commands, and shipped behavior when shortening an existing note. + Leave a statement unchanged when its source evidence is incomplete. + ### Package-specific grouping for shared releases The docs release page is the canonical release-note SSOT, including when many diff --git a/knowledge/internal/08-gv-cloud-workspaces.md b/knowledge/internal/08-gv-cloud-workspaces.md deleted file mode 100644 index af62aeed3..000000000 --- a/knowledge/internal/08-gv-cloud-workspaces.md +++ /dev/null @@ -1,237 +0,0 @@ -# GV Cloud Workspace Policy - -> **Priority: MANDATORY** -> Follow this policy when using TabTabTab `gv` cloud environments with OpenIAP. - -`gv` can be useful for OpenIAP as a safe remote maintenance runner, not as a -release, signing, or production-credential environment. Treat every GV -workspace as an external cloud workspace with GitHub access and no local secret -trust by default. - -## Safe role for OpenIAP - -Use GV for secret-free OSS maintenance work: - -- Documentation edits, release notes, docs typecheck, and docs consistency - audits. -- `packages/gql` tests and schema/codegen review work that does not require - private credentials. -- `packages/kit` typecheck and unit tests that run without production env vars. -- PR review response work on isolated branches/worktrees. -- Long-running lint/test/build smoke checks that should survive local laptop - sleep or high local resource use. - -Do not treat GV as the source of truth for full OpenIAP release validation. -Native Apple signing, Play/App Store production credentials, package publishing, -and deployment stay in the existing local or CI release systems. - -## Required boundaries - -Always keep these boundaries unless the repository owner explicitly changes this -policy: - -- Onboard the repo with env capture disabled: - - ```bash - gv repo add . --skip-env - ``` - -- First test of any new GV version or environment should be: - - ```bash - gv repo add . --dry-run --skip-env - ``` - -- GitHub App access must be limited to the selected `hyodotdev/openiap` - repository. Do not grant all-repository access. -- Do not enable OpenAI/Codex auth mirroring for OpenIAP by default. -- Do not enable local profile, CLI, shell, editor, or credential mirroring by - default. -- Do not add production, payment, signing, release, or deployment secrets to GV. -- If credentials are ever needed for a GV experiment, use sandbox/test-only - credentials with explicit owner approval. - -## Forbidden commands and actions - -Never run or recommend these for OpenIAP GV work: - -```bash -gv repo add . --yes -gv repo env list --reveal -gv env info --reveal -gv env info --qr -``` - -Also do not upload, reveal, or sync: - -- `.env`, `.env.local`, `.env.*` -- App Store Connect `.p8` keys -- Google service-account JSON files -- signing keys, provisioning profiles, certificates, keystores, and JKS files -- npm, NuGet, Maven Central, CocoaPods, Fly, Convex, App Store, Google Play, or - payment provider credentials - -One-time GV login URLs and workspace URLs should be treated as sensitive access -links. Do not paste them into issues, PRs, public docs, or long-lived logs. - -## Known GV baseline for this repo - -Validated on 2026-05-08 with a GV `agent-sandbox` environment: - -- Repo onboarding with `--skip-env` completed. -- `gv repo env list --repo openiap --json` returned an empty env var list. -- OpenAI auth status was disabled. -- GitHub access was enabled only after selected-repository approval. -- Cloud clone was clean on `main` from - `https://github.com/hyodotdev/openiap.git`. -- The default environment had `node`, `npm`, `corepack`, `python3`, `git`, and - `docker`. -- The default environment did not have `bun`, `yarn`, `java`, `swift`, - `flutter`, or `dotnet`. -- No `.devcontainer/devcontainer.json` existed in the repo at validation time. - -Because Bun is not available in the default GV environment, the safe current -pattern is to run Bun checks inside Docker containers with the workspace mounted -read-only. - -## Day-to-day usage - -Use GV by opening an agent or editor attached to the cloud environment, then -give the task prompt there. The prompt is not a shell command. - -```bash -gv env use agent-sandbox - -# Open a cloud-attached agent/editor. -gv open opencode --env agent-sandbox -gv open codex --env agent-sandbox -``` - -Use `gv ssh` for direct terminal checks in the cloud workspace: - -```bash -gv ssh --env agent-sandbox -cd ~/workspace/openiap -git status --short --branch -``` - -For investigation-only work, make the boundary explicit: - -```text -Investigate issue 104 and the GQL -> SDK sync flow. -List the affected packages and propose a fix plan. -Do not change code, commit, push, create PRs, read env files, or run deploy, -release, signing, publish, or credential-related commands. -``` - -For maintenance work that may edit code, require an isolated branch and scoped -verification: - -```text -Create a branch named codex/. -Make the smallest safe change for the requested docs/GQL/kit issue. -Do not touch env, signing, release, deploy, or publish files. -Run only the relevant secret-free checks, then summarize the diff and results. -``` - -## Safe verification pattern - -Prefer an ephemeral Docker container with a read-only repo mount and an internal -copy: - -```bash -gv ssh --env agent-sandbox -- \ - 'set -eu - OPENIAP_PATH="${OPENIAP_PATH:-$HOME/workspace/openiap}" - test -d "$OPENIAP_PATH" - docker run --rm \ - -v "$OPENIAP_PATH:/src:ro" \ - -w /work \ - oven/bun:1.3.13 \ - bash -lc "cp -a /src/. /work && bun install --frozen-lockfile && bun run audit:docs"' -``` - -Why this pattern: - -- `:ro` prevents the container from writing to the GV checkout. -- `/work` is a temporary container copy, so `node_modules`, build output, and - generated files disappear when the container exits. -- It avoids syncing local env files or local uncommitted changes. - -After any GV run, verify both workspace cleanliness and env state: - -```bash -gv ssh --env agent-sandbox -- \ - 'cd ~/workspace/openiap && git status --short --branch' - -gv repo env list --repo openiap --json -``` - -## Verified safe smoke checks - -These checks have run successfully inside the Docker `/work` copy in the -GV read-only pattern, not directly in the default GV host shell. Bun is not -available in the default GV environment unless a future setup script installs -it. - -```bash -# GQL tests -cd packages/gql && bun run test - -# Docs typecheck -cd packages/docs && bun run typecheck - -# Kit typecheck and tests -cd packages/kit && bun run typecheck && bun run test - -# Docs consistency audit -bun run audit:docs -``` - -Use these as the first GV regression suite for docs, GQL, and IAPKit -maintenance work. - -## Out of scope for GV until explicitly proven - -Do not use GV as the default runner for: - -- `packages/apple` SwiftPM/Xcode signing or release workflows. -- iOS/macOS Godot, Expo, React Native, KMP, Flutter, or MAUI device builds. -- Android/KMP release publishing that needs Maven Central signing credentials. -- Flutter pub.dev, npm, NuGet, CocoaPods trunk, GitHub release, or deployment - publishing. -- Fly/Convex production deploys. -- Any flow that requires production IAP, payment, App Store Connect, Google - Play, or signing credentials. - -Linux-friendly Android/KMP checks may become reasonable after the repository has -a minimal GV/devcontainer setup with Java installed, but production credentials -still remain out of scope. - -## Branch and PR workflow - -Use GV for isolated work, not direct `main` edits: - -1. Start from the clean cloud clone. -2. Create a branch such as `codex/docs-gv-audit` or `codex/kit-gv-smoke`. -3. Run only secret-free checks. -4. Review `git diff` and `git status`. -5. Push only intentional source changes. -6. Open a PR for normal CI review. - -Do not push release, signing, or deployment changes from GV without explicit -owner approval. - -## Future improvement - -If GV becomes part of regular maintenance, add a minimal devcontainer or setup -script for the Linux-friendly subset: - -- Bun pinned to the root `packageManager`. -- Node/Corepack. -- Java for Gradle checks. -- Optional Android command-line tooling if needed. - -Do not add Swift, Xcode, Flutter, .NET, signing tools, or production secret -setup to the first GV devcontainer. Keep the first iteration small and focused -on docs, GQL, kit, and non-release Android/KMP smoke checks. diff --git a/packages/docs/src/components/EcosystemDiagram.tsx b/packages/docs/src/components/EcosystemDiagram.tsx index 5a566ae04..fb0870c39 100644 --- a/packages/docs/src/components/EcosystemDiagram.tsx +++ b/packages/docs/src/components/EcosystemDiagram.tsx @@ -245,28 +245,76 @@ function EcosystemDiagram() { const mark = FRAMEWORK_MARKS[lib.name] ?? lib.image; return ( - - - - {lib.displayName} - {lib.description} - - - {lib.version} +
    + {lib.frameworkName} - - + + {lib.displayName} + {lib.description} + {lib.modules?.length ? ( + + {lib.modules.length}{' '} + {lib.modules.length === 1 ? 'module' : 'modules'} + + + ) : null} + + + {lib.version} + {lib.frameworkName} + + + {lib.modules?.length ? ( +
    +
    + Modules + {lib.modules.map((module) => ( + + + {module.name} + + + {module.description} + + + + ))} +
    +
    + ) : null} +
    ); })} @@ -280,7 +328,7 @@ function EcosystemDiagram() { openiap-gql generates the type system for the core native packages and for every framework library, and the core packages are bundled into each library. Select any node to open its - project. + documentation or project. ); diff --git a/packages/docs/src/lib/images.ts b/packages/docs/src/lib/images.ts index 32c5bc6e6..497785d2a 100644 --- a/packages/docs/src/lib/images.ts +++ b/packages/docs/src/lib/images.ts @@ -39,11 +39,18 @@ export type FrameworkLibraryName = | 'maui-iap' | 'godot-iap'; +export interface LibraryModuleInfo { + name: string; + description: string; + setupPath: string; +} + export interface LibraryInfo { name: FrameworkLibraryName; displayName: string; frameworkName: string; homeLabel: string; + modules?: readonly LibraryModuleInfo[]; version: string; deprecatedApiRemovalVersion: string; setupPath: string; @@ -65,6 +72,13 @@ export const LIBRARIES: LibraryInfo[] = [ displayName: 'expo-iap', frameworkName: 'Expo', homeLabel: 'Expo', + modules: [ + { + name: 'Onside', + description: 'Alternative iOS marketplace integration', + setupPath: '/docs/setup/store/onside', + }, + ], version: EXPO_PACKAGE.version, deprecatedApiRemovalVersion: '5.0.0', setupPath: '/docs/setup/expo', diff --git a/packages/docs/src/pages/docs/setup/store/onside.tsx b/packages/docs/src/pages/docs/setup/store/onside.tsx index f1010d2eb..46984be3f 100644 --- a/packages/docs/src/pages/docs/setup/store/onside.tsx +++ b/packages/docs/src/pages/docs/setup/store/onside.tsx @@ -17,8 +17,11 @@ function OnsideStoreSetup() { />

    Onside Store Setup

    - Onside support is currently available in expo-iap. It - is an iOS runtime integration for apps distributed through the Onside + + Onside + {' '} + support is currently available in expo-iap. It is an + iOS runtime integration for apps distributed through the Onside marketplace, not a React Native, Flutter, KMP, MAUI, or Godot build option.

    diff --git a/packages/docs/src/pages/docs/updates/releases.tsx b/packages/docs/src/pages/docs/updates/releases.tsx index 70b1d2272..03e67510a 100644 --- a/packages/docs/src/pages/docs/updates/releases.tsx +++ b/packages/docs/src/pages/docs/updates/releases.tsx @@ -236,7 +236,9 @@ function Releases() { color: 'var(--text-secondary)', }} > - Publishes the store-verification integrity release from{' '} + Amazon verification now checks product identity and returns sandbox + or production provenance across every SDK. Horizon now keeps the + last confirmed purchase state when verification is ambiguous ( PR #313 - . The release makes Amazon sandbox provenance and product binding - first-class across every SDK, removes the unfinished Horizon - subscription lane, and keeps transient store failures from replacing - the last authoritative purchase state. + ).

    Common changes
    @@ -259,13 +258,9 @@ function Releases() { }} >
  • - Hosted IAPKit now requires an explicit project opt-in for Amazon - App Tester and RVS Cloud Sandbox, records Sandbox or{' '} - Production provenance, and supports caller-provided{' '} - expectedProductId binding. A bounded receipt - reconciler refreshes active Amazon purchase rows without - overwriting authoritative state on timeout, throttling, secret, - network, or malformed-response failures, resolving{' '} + Hosted IAPKit requires explicit Amazon sandbox opt-in, records the + verification environment, checks expectedProductId, + and preserves authoritative state on non-authoritative failures ( issue #311 - . + ).
  • - Horizon verification is now a conservative synchronous REST path: - only strict boolean ownership verdicts are persisted, retryable or - ambiguous responses leave the last confirmed snapshot untouched, - and the structurally unsafe background subscription reconciler and - its synthetic revenue events are retired. This resolves{' '} + Horizon persists only explicit ownership results; ambiguous + responses keep the last snapshot, and the background subscription + reconciler and synthetic revenue events are removed ( issue #310 - . + ).
  • - Purchase analytics add Amazon and Horizon store counters. The - project shell, tabs, filters, tables, metric cards, and long - project identities now keep horizontal scrolling local and remain - usable with an expanded sidebar at tablet and desktop widths. + Purchase analytics include Amazon and Horizon, and wide dashboard + content now scrolls inside its own container.
  • @@ -309,22 +300,15 @@ function Releases() { }} >
  • - OpenIAP Spec 3.2.0 - adds optional Amazon{' '} + OpenIAP Spec 3.2.0 - adds optional{' '} expectedProductId input and optional verification{' '} - environment output while keeping existing request and - result constructors source-compatible. -
  • -
  • - openiap-apple 3.2.0 - forwards the Amazon product - guard and preserves a validated Sandbox or{' '} - Production result through the provider verification - bridge. + environment output without breaking existing + constructors.
  • - openiap-google 3.3.0 - carries the same input and - provenance through Play, Amazon, and Horizon builds, including the - Fire OS path that obtains a missing Amazon user ID before - verification. + openiap-apple 3.2.0 and{' '} + openiap-google 3.3.0 forward both fields; Fire OS + also fetches a missing Amazon user ID before verification.
  • @@ -337,37 +321,14 @@ function Releases() { }} >
  • - react-native-iap 16.3.0 - exposes Amazon product - binding and environment provenance through Nitro, native, and Vega - paths. When verification is enabled, the example uses explicit - sandbox configuration and finishes a purchase only after + react-native-iap 16.3.0 - forwards Amazon product + binding and provenance; its example finishes purchases only after verification succeeds.
  • - expo-iap 5.3.0 - preserves the new fields across - Expo Modules and Vega, and serializes restored or overlapping - purchase callbacks so remounts and reconnects cannot verify or - finish the same receipt twice. -
  • -
  • - flutter_inapp_purchase 10.3.0 - forwards the - exact Amazon product identifier through Dart and every native - channel, then validates and returns the optional environment. -
  • -
  • - godot-iap 3.3.0 - ships the generated Amazon - input and environment result contract in the GDScript plugin and - updated Android and iOS release artifacts. -
  • -
  • - kmp-iap 3.3.0 - maps the new fields through the - Android and iOS bridges and publishes matching Play, Amazon, - Horizon, and Apple variants. -
  • -
  • - OpenIap.Maui 2.3.0 - adds the generated C# - contract and uses the requested product ID in the Amazon example - while preserving the environment in verification results. + expo-iap 5.3.0 - serializes overlapping purchase + callbacks so remounts and reconnects cannot verify or finish one + receipt twice.
  • @@ -382,24 +343,23 @@ function Releases() {
  • Enable{' '} Allow Amazon App Tester / RVS Cloud Sandbox in - the IAPKit project before sending sandbox: true. - Production verification still requires the project's Amazon RVS - shared secret. Check both the verified product ID and expected - environment before granting or finishing a purchase. + IAPKit before sending sandbox: true; production still + requires the Amazon RVS shared secret. +
  • +
  • + Grant access only when the verified product ID and environment + match the request.
  • - Amazon reconciliation updates purchase rows only. It uses{' '} - cancelDate as Amazon's loss-of-access signal and does - not create subscription rows or infer expiry from a past{' '} - renewalDate. Horizon likewise remains raw ownership - verification without background subscription lifecycle state. + Amazon uses cancelDate for lost access, creates no + subscription rows, and infers no expiry from{' '} + renewalDate; Horizon remains ownership-only.
  • Self-hosted IAPKit deployments with historical Amazon or Horizon purchases should run{' '} migrations:backfillPurchaseStatsStoreBuckets after - the base purchase-stats backfill. The hosted audit found no - historical rows that required this migration. + the base purchase-stats backfill.
  • @@ -456,7 +416,8 @@ function Releases() { color: 'var(--text-secondary)', }} > - Publishes the Android subscription replacement reliability fix from{' '} + Google Play subscription upgrades and downgrades now survive R8 + minification by using typed Billing 9.1 replacement parameters ( PR #309 - . Minified Google Play release builds now construct product-level - replacement parameters through typed Play Billing 9.1 APIs instead - of class- and method-name reflection. + ).

    @@ -480,11 +439,9 @@ function Releases() { }} >
  • - openiap-google 3.2.3 - replaces reflective - construction of subscription product replacement parameters with - typed Play Billing 9.1 calls, so R8 can safely rewrite the - references without an OpenIAP-specific broad Billing keep rule. - All seven replacement modes retain their native values, resolving{' '} + openiap-google 3.2.3 - replaces reflection with + typed Billing calls while preserving all seven replacement modes, + resolving{' '} -
    Framework libraries
    -
      -
    • - react-native-iap 16.2.4 - selects openiap-google - 3.2.3 so minified Android release builds receive the typed - subscription replacement path. -
    • -
    • - expo-iap 5.2.4 - selects openiap-google 3.2.3 to - restore subscription upgrades and downgrades in R8-minified Expo - release builds. -
    • -
    • - flutter_inapp_purchase 10.2.4 - selects - openiap-google 3.2.3 for the same R8-safe Android replacement - behavior. -
    • -
    • - godot-iap 3.2.2 - refreshes its Android plugin - artifact with the typed Play Billing replacement path. -
    • -
    • - kmp-iap 3.2.2 - publishes its Android target - against openiap-google 3.2.3 for minified Play builds. -
    • -
    • - OpenIap.Maui 2.2.2 - refreshes its Android - binding against openiap-google 3.2.3 for the corrected replacement - flow. -
    • -
    -
    Integration notes
    • - Public APIs and request shapes are unchanged. Existing call sites - using subscriptionProductReplacementParams need no - changes after upgrading. -
    • -
    • - Apps that added a broad Billing keep rule solely for this OpenIAP - workaround can remove it after upgrading and validating their - minified release build. -
    • -
    • - The runtime change is specific to Google Play; Amazon and Horizon - store integrations are unchanged. + Existing subscriptionProductReplacementParams calls + need no changes; remove any OpenIAP-specific broad Billing keep + rule after validating a minified release build.
    @@ -608,17 +518,16 @@ function Releases() { color: 'var(--text-secondary)', }} > - Publishes the completed Store API follow-up and Android Kotlin - consumer-compatibility replacement train. It closes two runtime edge - cases and the binary compatibility regression reported in{' '} + Fixes promoted-purchase races, Android Activity ownership, and + Kotlin 2.1.20+ consumer compatibility without removing public APIs (
    issue #304 - {' '} - without removing or renaming public APIs. + + ).

    Common changes
    @@ -630,10 +539,8 @@ function Releases() { }} >
  • - Promoted-product examples now refetch mixed product details and - select the subscription request branch when the promoted item is a - subscription. The Advanced Commerce period field also carries its - precise OpenIAP and Apple availability in every generated SDK. + Promoted-product examples now select the correct product type, and + Advanced Commerce period docs identify their exact availability.
  • @@ -648,26 +555,15 @@ function Releases() { }} >
  • - OpenIAP Spec 3.1.1 - synchronizes the Advanced - Commerce period availability clarification used by every generated - SDK. + openiap-apple 3.1.1 - reserves a redeemed + win-back offer for one matching promoted purchase and safely + releases it after failure without letting a stale attempt replace + a newer purchase intent.
  • - openiap-apple 3.1.1 - exclusively reserves an - externally redeemed win-back offer for one matching promoted - purchase attempt. Local validation and presentation failures - release the reservation for a safe retry, while newer purchase - intents cannot be overwritten by a stale attempt. -
  • -
  • - openiap-google 3.2.2 - makes native convenience - Activity binding lifecycle-aware and owner-scoped. A paused or - disposed Compose owner no longer clears another active owner, and - Horizon ViewModel callers have an explicit Activity-based - initialization path. It also restores Kotlin 2.1.20+ consumer - compatibility by publishing Kotlin 2.2.0 metadata and validating - Play, Horizon, and Amazon from an independent Kotlin 2.1.20 - consumer before publication ({' '} + openiap-google 3.2.2 - prevents one Compose owner + from clearing another owner's Activity and restores Kotlin + 2.1.20+ compatibility ( -
    Framework libraries
    -
      -
    • - react-native-iap 16.2.2 - consumes the corrected - native lifecycle behavior, Kotlin-compatible Android artifacts, - and synchronized generated contract comments. -
    • -
    • - expo-iap 5.2.2 - consumes the corrected native - lifecycle behavior, Kotlin-compatible Android artifacts, and - synchronized generated contract comments. -
    • -
    • - flutter_inapp_purchase 10.2.2 - resolves the - Kotlin-compatible Android artifact and synchronizes the generated - Apple availability contract. -
    • -
    • - godot-iap 3.2.1 - synchronizes the generated - Apple availability contract. -
    • -
    • - kmp-iap 3.2.1 - resolves the Kotlin-compatible - Android artifact and synchronizes the generated Apple availability - contract. -
    • -
    • - OpenIap.Maui 2.2.1 - resolves the - Kotlin-compatible Android artifact and synchronizes the generated - Apple availability contract. -
    • -
    -
    Integration notes

    - Android projects using Kotlin 2.1.20 or 2.2.x must replace - openiap-google 3.1.0 through 3.2.1 with 3.2.2. React Native users - must replace react-native-iap 16.1.0 through 16.2.1 with 16.2.2; - Expo users must replace expo-iap 5.1.0 through 5.2.1 with 5.2.2; - and Flutter users must replace flutter_inapp_purchase 10.1.0 - through 10.2.1 with 10.2.2. The affected npm versions are - deprecated, the affected Flutter versions are retracted, and the - immutable Google 3.2.1 Maven release carries an upgrade warning. + Kotlin 2.1.20 or 2.2.x projects must upgrade these affected + ranges: +

    +
      +
    • openiap-google 3.1.0-3.2.1 to 3.2.2
    • +
    • + react-native-iap 16.1.0-16.2.1 to 16.2.2, and expo-iap + 5.1.0-5.2.1 to 5.2.2 +
    • +
    • flutter_inapp_purchase 10.1.0-10.2.1 to 10.2.2
    • +
    +

    + The affected npm versions are deprecated, the Flutter versions are + retracted, and Google 3.2.1 carries an upgrade warning.

    - Framework API call sites remain unchanged. Native Android ViewModel - users targeting Horizon should migrate from the deprecated - initConnection(config) overload to{' '} - initConnection(activity, config); Compose users receive - lifecycle binding automatically. Upgrade all coordinated packages to - the versions below so the native fixes and generated contracts stay - aligned. + Horizon ViewModel users should replace the deprecated{' '} + initConnection(config) overload with{' '} + initConnection(activity, config). Compose users receive + Activity binding automatically.

    - Publishes the coordinated stable release train from{' '} + Improves Apple promoted purchases and offer redemption, makes Play + subscription recovery capability-aware, and validates Horizon + purchase preconditions ( PR #299 - . The release modernizes StoreKit purchase-intent and redemption - behavior, makes Google Play subscription recovery capability-aware, - tightens Meta Horizon purchase preconditions, and synchronizes the - resulting contracts across every maintained SDK. + ).

    -
    Native store behavior
    +
    + Shared spec and native packages +
    • - openiap-apple 3.1.0 captures externally redeemed - win-back offers for matching promoted purchases, selects the - newest verified current entitlement deterministically, and returns - a verified redemption purchase on Apple 27+ when built with Xcode - 27+. Older supported system-sheet paths continue to return{' '} - null after presentation. + openiap-apple 3.1.0 - matches redeemed win-back + offers to promoted purchases, selects the newest verified current + entitlement, and returns a verified redemption purchase on Apple + 27+ with Xcode 27+.
    • - openiap-google 3.2.0 requests suspended - subscriptions only when the connected Play Store supports that - capability, otherwise falling back to active purchases. Horizon - initialization now requires a foreground Activity, - and Horizon purchase requests reject multi-product payloads before - invoking the store. + openiap-google 3.2.0 - fetches suspended Play + subscriptions only when supported; Horizon requires a foreground{' '} + Activity and one product per purchase request.
    • - Advanced Commerce purchase metadata now carries its optional{' '} - period across the shared schema and generated Apple, - TypeScript, Dart, GDScript, Kotlin, and C# models. + OpenIAP Spec 3.1.0 - adds optional Advanced + Commerce period metadata to every generated SDK.
    @@ -849,23 +704,12 @@ function Releases() { }} >
  • - react-native-iap 16.2.0 and{' '} - expo-iap 5.2.0 expose the synchronized Apple - period metadata and updated promoted-product, redemption, and - Horizon contracts. Expo prebuilds also isolate the local OpenIAP - composite-build output from other Android consumers. -
  • -
  • - flutter_inapp_purchase 10.2.0,{' '} - godot-iap 3.2.0, and{' '} - OpenIap.Maui 2.2.0 publish the synchronized Apple - purchase metadata and corrected redemption guidance for their - generated types, wrappers, tests, and examples. + expo-iap 5.2.0 - isolates local OpenIAP composite + build output so it cannot affect other Android consumers.
  • - kmp-iap 3.2.0 adds the same Apple metadata while - applying the Play suspended-subscription capability fallback to - its Android restore path. + kmp-iap 3.2.0 - applies the Play suspended- + subscription capability fallback to Android restore.
  • @@ -877,20 +721,14 @@ function Releases() { fontSize: '0.9rem', }} > -
  • - No public API call signature was removed. Upgrade through each - SDK's normal package manager to pick up the store-safety fixes. -
  • Start Horizon billing only while the app has a foreground Android - activity, and submit exactly one product in each Horizon purchase + Activity, and submit exactly one product in each Horizon purchase request.
  • - Treat a null offer-code redemption result as a - successfully presented system sheet on supported older paths, then - refresh purchases or entitlements after the customer completes - redemption. + On older Apple paths, null means the redemption sheet + was presented; refresh purchases after the customer finishes.
  • @@ -947,7 +785,9 @@ function Releases() { color: 'var(--text-secondary)', }} > - Publishes the coordinated minor release train from{' '} + Updates supported build toolchains while preserving host compiler + compatibility. React Native and Expo also fix stale{' '} + useIAP initialization ( PR #294 - {' '} - across the Android native package and every framework library. The - train moves each maintained build to current supported dependencies, - migrates APIs and configuration deprecated by those upgrades, and - preserves the consumer compatibility bounds validated across Google - Play, Amazon Appstore, Meta Horizon Store, and Apple platforms. + + ).

    -
    Common changes
    - -
    Shared spec and native packages
    @@ -1003,13 +810,10 @@ function Releases() { }} >
  • - openiap-google 3.1.0 - modernizes the Play, - Amazon, and Horizon artifacts together, including Kotlin 2.4.10, - Coroutines 1.11.0, Gson 2.14.0, AndroidX base artifacts, and the - typed Vanniktech publishing API. AndroidX Core 1.18.0 and - Lifecycle 2.10.0 retain the API 36 / AGP 8.13 consumer line, and - Horizon serialization stays on 1.9.0 for Expo SDK 57 Kotlin - metadata compatibility. + openiap-google 3.1.0 - moves standalone builds to + Kotlin 2.4.10, Gradle 9.3.0, and SDK 36, keeps AndroidX Core + 1.18.0 and Lifecycle 2.10.0 on the API 36 / AGP 8.13 consumer + line, and holds Horizon serialization at 1.9.0 for Expo SDK 57.
  • @@ -1022,47 +826,32 @@ function Releases() { }} >
  • - react-native-iap 16.1.0 - updates the validated - React 19 / React Native 0.86 / Nitro 0.36.5 toolchain, adopts the - current BaseReactPackage and fbjni registration APIs, - and prevents a superseded or unmounted useIAP{' '} - initialization from installing listeners or updating state. + react-native-iap 16.1.0 - validates React 19, + React Native 0.86, and Nitro 0.36.5, and prevents stale{' '} + useIAP initialization from installing listeners.
  • - expo-iap 5.1.0 - validates Expo SDK 57 and its - React Native 0.86 stack, keeps local Android builds on Expo's - compatible Kotlin 2.1.20 compiler, replaces deprecated Android and - Babel dependencies, and closes the corresponding{' '} - useIAP initialization and teardown race. + expo-iap 5.1.0 - validates Expo SDK 57 with + Kotlin 2.1.20 and fixes the same useIAP{' '} + initialization race.
  • - flutter_inapp_purchase 10.1.0 - supports both - Flutter's transitional Kotlin plugin path and AGP 9 built-in - Kotlin, moves the Android build to SDK 36 and Coroutines 1.11.0, - and migrates the example to the current Flutter lints and - flutter_dotenv APIs. + flutter_inapp_purchase 10.1.0 - supports both the + transitional Kotlin plugin and AGP 9 built-in Kotlin on SDK 36.
  • - godot-iap 3.1.0 - refreshes the precompiled - Android and Apple artifacts with Godot 4.7.1, SwiftGodot 0.79.0, - Kotlin 2.4.10, Gradle 9.3.0, and Coroutines 1.11.0 while retaining - Godot 4.3+ compatibility for the released addon. + godot-iap 3.1.0 - refreshes precompiled artifacts + with Godot 4.7.1 and SwiftGodot 0.79.0 while retaining Godot 4.3+ + runtime compatibility.
  • - kmp-iap 3.1.0 - moves the Android/iOS library to - Kotlin 2.4.10, Gradle 9.3.0, Compose Multiplatform 1.10.3, Dokka - 2.2.0, Coroutines 1.11.0, Serialization 1.11.0, and the current - typed Maven publishing API. Compose remains capped at 1.10.3 for - iosX64 compatibility, and Material Icons remains at 1.7.3 because - no newer compatible artifact is published. + kmp-iap 3.1.0 - moves to Kotlin 2.4.10, Gradle + 9.3.0, and Compose 1.10.3; Compose remains capped for iosX64.
  • - OpenIap.Maui 2.1.0 - aligns the NuGet dependency - graph with .NET 10 MAUI 10.0.90 and the updated Android bindings, - while its example replaces deprecated dialog methods, routes Apple - JWS, Google tokens, and Amazon receipt identity to custom or local - IAPKit endpoints, and leaves transactions unfinished when - verification fails. + OpenIap.Maui 2.1.0 - supports .NET 10 MAUI + 10.0.90; its example sends store receipts to IAPKit and leaves + failed verifications unfinished.
  • @@ -1075,20 +864,14 @@ function Releases() { }} >
  • - No OpenIAP API migration is required; upgrade to the package - versions below through the normal package manager for each SDK. -
  • -
  • - React Native projects require React Native 0.79+ and Node.js 18+. - Expo projects should follow their SDK's Kotlin, Node.js, Android, - and iOS baselines; SDK 57 is the validated current setup, while - SDK 52 is no longer compatible with the Android artifacts. + React Native projects require React Native 0.79+ and Node.js 18+; + Expo SDK 57 is validated, while SDK 52 is incompatible with these + Android artifacts.
  • - The released Godot addon supports Godot 4.3+, while source builds - now require Godot 4.7.1, SwiftGodot 0.79.0, Swift 6.3, and Xcode - 26.5+. KMP builds require Kotlin 2.4.10, Gradle 9.3.0, and JDK - 17+. + Godot source builds require Godot 4.7.1, SwiftGodot 0.79.0, Swift + 6.3, and Xcode 26.5+; KMP builds require Kotlin 2.4.10, Gradle + 9.3.0, and JDK 17+.
  • diff --git a/packages/docs/src/styles/ecosystem-diagram.css b/packages/docs/src/styles/ecosystem-diagram.css index 4ae4c77ca..b8795e4de 100644 --- a/packages/docs/src/styles/ecosystem-diagram.css +++ b/packages/docs/src/styles/ecosystem-diagram.css @@ -175,13 +175,58 @@ transform: translateY(-2px); } +.eco-library { + overflow: hidden; + border: 1px solid var(--eco-border); + border-radius: 12px; + background: var(--eco-card-bg); + transition: + transform 0.15s ease, + border-color 0.15s ease, + box-shadow 0.15s ease; +} + +.eco-library:hover, +.eco-library:focus-within { + border-color: var(--primary-color); + box-shadow: 0 6px 16px var(--eco-shadow); + transform: translateY(-2px); +} + +.doc-page .eco-diagram .eco-grid .eco-library > a.eco-node--library, +:root.dark .doc-page .eco-diagram .eco-grid .eco-library > a.eco-node--library { + border: 0; + border-radius: 0; + background: transparent; +} + +.doc-page .eco-diagram .eco-grid .eco-library > a.eco-node--library:hover, +:root.dark + .doc-page + .eco-diagram + .eco-grid + .eco-library + > a.eco-node--library:hover { + box-shadow: none; + transform: none; +} + .doc-page .eco-diagram .eco-grid a.eco-node:focus-visible, .doc-page .eco-diagram a.eco-band-chip:focus-visible, -.doc-page .eco-diagram .eco-grid a.eco-more:focus-visible { +.doc-page .eco-diagram .eco-grid a.eco-more:focus-visible, +.doc-page .eco-diagram .eco-grid a.eco-module:focus-visible { outline: 2px solid var(--primary-color); outline-offset: 2px; } +.doc-page + .eco-diagram + .eco-grid + .eco-library + > a.eco-node--library:focus-visible { + outline-offset: -3px; +} + .eco-node-text { display: flex; min-width: 0; @@ -205,6 +250,15 @@ color: var(--text-secondary); } +.eco-node-module-count { + align-self: flex-start; + margin-top: 0.08rem; + color: var(--primary-color); + font-size: 0.625rem; + font-weight: 700; + line-height: 1.35; +} + .eco-node-marks { display: flex; flex: none; @@ -227,6 +281,74 @@ opacity: 0.85; } +.eco-modules { + max-height: 0; + overflow: hidden; + opacity: 0; + transition: + max-height 0.2s ease, + opacity 0.15s ease; +} + +.eco-library--has-modules:hover .eco-modules, +.eco-library--has-modules:focus-within .eco-modules { + max-height: 12rem; + opacity: 1; +} + +.eco-modules-inner { + margin: 0 0.7rem 0.7rem; + padding-top: 0.55rem; + border-top: 1px solid var(--eco-border); +} + +.eco-modules-label { + display: block; + margin-bottom: 0.35rem; + color: var(--text-secondary); + font-size: 0.625rem; + font-weight: 700; + letter-spacing: 0.1em; + text-transform: uppercase; +} + +.doc-page .eco-diagram .eco-grid a.eco-module, +:root.dark .doc-page .eco-diagram .eco-grid a.eco-module { + display: grid; + grid-template-columns: auto minmax(0, 1fr) auto; + align-items: center; + gap: 0.45rem; + padding: 0.45rem 0.5rem; + border: 1px solid transparent; + border-radius: 8px; + background: color-mix(in srgb, var(--primary-color) 8%, transparent); + color: var(--text-primary); + text-decoration: none; +} + +.doc-page .eco-diagram .eco-grid a.eco-module:hover, +:root.dark .doc-page .eco-diagram .eco-grid a.eco-module:hover { + border-color: var(--primary-color); +} + +.eco-module-name { + font-family: var(--eco-mono); + font-size: 0.6875rem; + font-weight: 700; +} + +.eco-module-description { + min-width: 0; + color: var(--text-secondary); + font-size: 0.625rem; + line-height: 1.35; +} + +.eco-module-arrow { + color: var(--primary-color); + font-weight: 700; +} + .doc-page .eco-diagram .eco-grid a.eco-more, :root.dark .doc-page .eco-diagram .eco-grid a.eco-more { grid-column: 1 / -1; @@ -543,18 +665,33 @@ /* ---------- motion / forced colors ---------------------------------------- */ @media (prefers-reduced-motion: reduce) { - .doc-page .eco-diagram .eco-grid a.eco-node { + .doc-page .eco-diagram .eco-grid a.eco-node, + .eco-library, + .eco-modules { transition: none; } .doc-page .eco-diagram .eco-grid a.eco-node:hover { transform: none; } + + .eco-library:hover, + .eco-library:focus-within { + transform: none; + } +} + +@media (hover: none) { + .eco-library--has-modules .eco-modules { + max-height: 12rem; + opacity: 1; + } } @media (forced-colors: active) { .doc-page .eco-diagram .eco-band, - .doc-page .eco-diagram .eco-grid a.eco-node { + .doc-page .eco-diagram .eco-grid a.eco-node, + .eco-library { border-color: CanvasText; } } From 8789ec9d1ed32230a1ef86e2fd667a49a57470b6 Mon Sep 17 00:00:00 2001 From: Hyo Date: Thu, 13 Aug 2026 06:45:05 +0900 Subject: [PATCH 2/3] docs: add ecosystem preview --- .../pr-previews/ecosystem-onside-preview.mp4 | Bin 0 -> 156320 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .github/pr-previews/ecosystem-onside-preview.mp4 diff --git a/.github/pr-previews/ecosystem-onside-preview.mp4 b/.github/pr-previews/ecosystem-onside-preview.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..8e7e352ee607927ca3cec00d2f38bc536fd076d6 GIT binary patch literal 156320 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�T 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 YA(w;QPG{ID1U6kKu<1&Ho22A_02p0Jq5uE@ literal 0 HcmV?d00001 From d794d80ea1b54402199d8a0c2add356abdcfab77 Mon Sep 17 00:00:00 2001 From: Hyo Date: Thu, 13 Aug 2026 07:01:15 +0900 Subject: [PATCH 3/3] docs: align review workflow wording --- .codex/skills/generate-doc/SKILL.md | 11 +++++++---- .codex/skills/generate-doc/agents/openai.yaml | 2 +- .codex/skills/loop-review/agents/openai.yaml | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/.codex/skills/generate-doc/SKILL.md b/.codex/skills/generate-doc/SKILL.md index 874f41e35..a43d9316d 100644 --- a/.codex/skills/generate-doc/SKILL.md +++ b/.codex/skills/generate-doc/SKILL.md @@ -152,10 +152,13 @@ Follow the existing card pattern: Card section layout (mandatory for multi-package cards): -- Use only the sections that contain information readers must act on. Keep them - in this order when present: `Common changes`, `Shared spec and native - packages`, `Framework libraries`, `Integration notes` (or migration notes), - then the bordered `Package Releases` block. +- Use only the sections that contain distinct user-visible behavior or + information readers must act on. When present, keep this order: + 1. `Common changes` + 2. `Shared spec and native packages` + 3. `Framework libraries` + 4. `Integration notes` (or migration notes) + 5. The bordered `Package Releases` block - Never add one `h5` heading per platform or framework (no `Apple`, `Google`, `React Native`, `Expo`, ... headings). Each package-specific behavior gets at most one `
  • ` inside the shared group list, written as diff --git a/.codex/skills/generate-doc/agents/openai.yaml b/.codex/skills/generate-doc/agents/openai.yaml index e17201097..d35ef396a 100644 --- a/.codex/skills/generate-doc/agents/openai.yaml +++ b/.codex/skills/generate-doc/agents/openai.yaml @@ -1,4 +1,4 @@ interface: display_name: "Generate OpenIAP Docs" short_description: "Document expected releases without duplicate trains" - default_prompt: "Use $generate-doc to update the existing unreleased OpenIAP card with concise user-visible changes for affected packages and the verified Package Releases links." + default_prompt: "Use $generate-doc to update the existing unreleased OpenIAP card with concise user-visible changes for affected packages and the expected Package Releases links." diff --git a/.codex/skills/loop-review/agents/openai.yaml b/.codex/skills/loop-review/agents/openai.yaml index 17a8d8617..0a0da9803 100644 --- a/.codex/skills/loop-review/agents/openai.yaml +++ b/.codex/skills/loop-review/agents/openai.yaml @@ -1,4 +1,4 @@ interface: display_name: "Loop Review" - short_description: "Review, publish, and merge a clean OpenIAP change" + short_description: "Review, open a PR, and merge a clean OpenIAP change" default_prompt: "Use $loop-review to start from the latest origin/main, stabilize the change, open a PR, address reviews, and merge it."