Skip to main content

sheet-read

Read rows from the coach's Programming Source Sheet and/or Movement Source Sheet using gogcli, resolving the real spreadsheet ID from local plugin data instead of any hardcoded value. Use this as stage 1 of the Rubicon programming pipeline, before programming-inference.

来源信息

仓库
joelhooks/rubicon-codex-plugin
最近来源活动
2026年7月8日 16:30
检测到的 SKILL.md 语言
英语
星标
0
分支
0

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
sheet-read
description
Read rows from the coach's Programming Source Sheet and/or Movement Source Sheet using gogcli, resolving the real spreadsheet ID from local plugin data instead of any hardcoded value. Use this as stage 1 of the Rubicon programming pipeline, before programming-inference.
# Sheet Read Stage 1 of 4 in the Rubicon coach programming pipeline: `sheet-read` → `programming-inference` → `preview` → `publish` This skill reads raw rows out of Google Sheets so they can later be transformed into Rubicon's programming graph. It does not write anything to Rubicon. Stop after this stage and let the coach confirm the pulled rows look right before moving on to `programming-inference`. ## Where the sheet IDs come from This plugin never hardcodes a spreadsheet ID or URL — not as a real value, not as a "just an example" placeholder. The real IDs belong to the coach (Chris) and only exist locally, outside this repo. On first install, the `sheet-id-onboarding` hook (`hooks/hooks.json`) prompts for both sheet IDs/URLs and writes them to: ``` $PLUGIN_DATA/sheet-ids.json ``` with shape: ```json { "programmingSourceSheetId": "<resolved at runtime>", "movementSourceSheetId": "<resolved at runtime>" } ``` Before reading any sheet, read this file and use the ID it contains. If the file is missing or a field is empty, tell the user to re-run onboarding rather than asking them to paste the ID into chat (chat transcripts are not a safe place for this either — treat the sheet identity as sensitive, same as a credential). Refer to the two sheets by name in all output to the user: - "the Programming Source Sheet" - "the Movement Source Sheet" Never print the literal spreadsheet ID or a `docs.google.com/.../d/...` URL into any file this plugin writes to the repo, into commit messages, or into any artifact that might get shared publicly. It is fine to use the ID in-memory to make the `gog` call itself. ## Reading rows with gogcli This plugin uses `gogcli` (the `gog` CLI, installed at `/opt/homebrew/bin/gog` in the reference environment) for all Google Sheets access. `gog` is keychain-backed, per-account OAuth — it authenticates as the coach's own Google account and addresses sheets purely by `spreadsheetId`. No Google credentials are ever embedded in this plugin. The exact flag names below are illustrative, not guaranteed — **consult `gog sheets --help` (and `gog --help`) for the exact current flags** before relying on this shape, since gogcli's CLI surface may have moved since this skill was written: ```sh gog sheets read \ --spreadsheet-id "<id from sheet-ids.json>" \ --range "<sheet name or A1 range, e.g. 'Programming'!A1:Z>" ``` General approach: 1. Load `programmingSourceSheetId` and/or `movementSourceSheetId` from `$PLUGIN_DATA/sheet-ids.json` depending on what the coach asked for. 2. Run `gog sheets --help` if you haven't confirmed the current subcommand and flag names in this session. 3. Read the relevant range(s). Prefer reading a named tab/range over the whole sheet if the coach specifies a week, block, or session. 4. Return the rows as structured data (e.g. a table or JSON) in the conversation so the coach can sanity-check them — do not silently pass them forward to `programming-inference` without a checkpoint, unless the coach explicitly says to proceed. ## Handoff Once the coach confirms the pulled rows look correct, hand off to the `programming-inference` skill with the raw row data. Do not attempt to infer Rubicon programming operations in this skill — that belongs entirely to `programming-inference`.
在 GitHub 查看