uinaf intake
Publish a compact agent-written summary to the public
uinaf/intake repository. The Markdown entry
is canonical; intake.uinaf.dev is generated from it.
Boundary
Only intake public source material. Never publish credentials, private context,
personal data, paid/private source text, screenshots, media, full articles, or
full transcripts.
If the source cannot be retrieved and the user has not supplied enough of it to
write an accurate summary, stop. Do not create a hollow bookmark or infer the
missing content.
Workflow
Read the source completely enough to understand its claims and context.
Find the registered uinaf/intake checkout. Prefer the workspace project
registry, then ~/projects/uinaf/intake. Do not invent another permanent
checkout.
Run pnpm run intake:find -- "<source-url>" in that checkout.
- Exit 0 prints an existing entry: improve that file instead of duplicating it.
- Exit 1 means the normalized source is new.
Read entry format, select existing tags where
they fit, and write the proposed Markdown to a temporary file outside the
checkout.
Install the checkout's locked dependencies, then publish:
pnpm --dir "<registered-checkout>" install --frozen-lockfile
node "<registered-checkout>/scripts/publish-entry.ts" \
"<registered-checkout>" \
"<temporary-markdown-file>" \
"entries/YYYY/YYYY-MM-DD-kebab-case.md"
If the script reports an unchanged entry, report that no publication occurred.
Otherwise, report the verified commit and entry URL printed by the script. It retries
rejected concurrent branch updates at most three times, validating against
each fresh head. Concurrent edits to the same entry or duplicate sources
require a deliberate merge of the latest summary before rerunning.
An ambiguous write is reconciled against remote history, never blindly
repeated. If the script cannot prove publication, inspect origin/main
before rerunning. The entry URL does not prove the site has deployed yet.
Writing Rules
- Summarize in your own words. Preserve important nuance and uncertainty.
- Start with a short overview (one or two paragraphs, 40–400 characters of
plain text), then only
## Key takeaways with three to eight
- **Label**: description items. Labels are short noun phrases, not
cut sentences. Do not add Metadata, Classification, Summary, Caveats,
or any other heading. The site renders that list; a wall of prose fails
validation.
- Never repeat the title as a heading. The page already renders
title
as the only h1.
- Attribute claims through the
source URL; do not reproduce the source.
- Use
article, video, tweet, podcast, paper, or research.
- Prefer the canonical public source URL. The site auto-embeds YouTube and
shows a play-on-X control for
video sources; tweets stay link-only.
Agents only need the right type and source.
- Use lowercase kebab-case tags and reuse existing tags before creating synonyms.
- Keep the original
saved date and file stem when improving an existing entry.
- Do not add workflow fields, review states, or private annotations.
Normal single-source intake publishes directly to main. Bulk imports, schema
changes, site changes, and skill changes require a pull request.
Verification
The checkout must contain the current scripts/publish-entry.ts, Node, pnpm,
Mise, and the runtime's configured gh-app-auth extension. See
publishing authentication and recovery for the
App identity, signing contract, failure handling, and installed-copy refresh.
The publisher runs check:entries and verify before writing. It creates a
GitHub-signed API commit and checks its signature and presence on remote main
before reporting success. Do not bypass failed checks or disable signing.
Never force-push main.
1---2name: uinaf-intake3description: Save, capture, or intake a useful public article, video, tweet, podcast, paper, or research source into the shared uinaf/intake library. Use for explicit $uinaf-intake requests and natural requests such as "save this", "capture this source", or "intake this" when the target is public research material. Do not use for private documents, attachments, accounting intake, internal notes, or source material that cannot be retrieved well enough to summarize faithfully.4---56# uinaf intake78Publish a compact agent-written summary to the public9[`uinaf/intake`](https://github.com/uinaf/intake) repository. The Markdown entry10is canonical; `intake.uinaf.dev` is generated from it.1112## Boundary1314Only intake public source material. Never publish credentials, private context,15personal data, paid/private source text, screenshots, media, full articles, or16full transcripts.1718If the source cannot be retrieved and the user has not supplied enough of it to19write an accurate summary, stop. Do not create a hollow bookmark or infer the20missing content.2122## Workflow23241. Read the source completely enough to understand its claims and context.252. Find the registered `uinaf/intake` checkout. Prefer the workspace project26 registry, then `~/projects/uinaf/intake`. Do not invent another permanent27 checkout.283. Run `pnpm run intake:find -- "<source-url>"` in that checkout.29 - Exit 0 prints an existing entry: improve that file instead of duplicating it.30 - Exit 1 means the normalized source is new.314. Read [entry format](references/entry-format.md), select existing tags where32 they fit, and write the proposed Markdown to a temporary file outside the33 checkout.345. Install the checkout's locked dependencies, then publish:3536 ```bash37 pnpm --dir "<registered-checkout>" install --frozen-lockfile38 node "<registered-checkout>/scripts/publish-entry.ts" \39 "<registered-checkout>" \40 "<temporary-markdown-file>" \41 "entries/YYYY/YYYY-MM-DD-kebab-case.md"42 ```43446. If the script reports an unchanged entry, report that no publication occurred.45 Otherwise, report the verified commit and entry URL printed by the script. It retries46 rejected concurrent branch updates at most three times, validating against47 each fresh head. Concurrent edits to the same entry or duplicate sources48 require a deliberate merge of the latest summary before rerunning.49 An ambiguous write is reconciled against remote history, never blindly50 repeated. If the script cannot prove publication, inspect `origin/main`51 before rerunning. The entry URL does not prove the site has deployed yet.5253## Writing Rules5455- Summarize in your own words. Preserve important nuance and uncertainty.56- Start with a short overview (one or two paragraphs, 40–400 characters of57 plain text), then only `## Key takeaways` with three to eight58 `- **Label**: description` items. Labels are short noun phrases, not59 cut sentences. Do not add Metadata, Classification, Summary, Caveats,60 or any other heading. The site renders that list; a wall of prose fails61 validation.62- Never repeat the title as a heading. The page already renders `title`63 as the only `h1`.64- Attribute claims through the `source` URL; do not reproduce the source.65- Use `article`, `video`, `tweet`, `podcast`, `paper`, or `research`.66- Prefer the canonical public source URL. The site auto-embeds YouTube and67 shows a play-on-X control for `video` sources; tweets stay link-only.68 Agents only need the right `type` and `source`.69- Use lowercase kebab-case tags and reuse existing tags before creating synonyms.70- Keep the original `saved` date and file stem when improving an existing entry.71- Do not add workflow fields, review states, or private annotations.7273Normal single-source intake publishes directly to `main`. Bulk imports, schema74changes, site changes, and skill changes require a pull request.7576## Verification7778The checkout must contain the current `scripts/publish-entry.ts`, Node, pnpm,79Mise, and the runtime's configured `gh-app-auth` extension. See80[publishing authentication and recovery](references/publishing.md) for the81App identity, signing contract, failure handling, and installed-copy refresh.8283The publisher runs `check:entries` and `verify` before writing. It creates a84GitHub-signed API commit and checks its signature and presence on remote `main`85before reporting success. Do not bypass failed checks or disable signing.86Never force-push `main`.