Update to Redpine
Snapshot Oct 9, 2026 · 18:02 UTC · version 1.0.2
Payment or plan references changed
Package contents changed in 10 files: .app.json, .codex-plugin/plugin.json, .mcp.json, …. Open the file diff to inspect the edits.
Observed in published text. Live prices and checkout terms have not been verified by this change.
Package file
99e4bc0bc6d305e899f7db9bb294f48c0d1f5924da29937dfe0c4744edd4c264
8af0a36b94d47fe851ae8923f7496ea4d797c54d862e04dc93bace040571d11b
Package file
127
99
Package file
f1010a87d6dd489f058f598db4c609f81093813f1e6b9689b20b63aec088f27f
1d830bf85a291173ae965a6f917011ac1e688a4955395bdc7dec8fbf876f309d
Package file
4238
4704
Compare saved observations
Download comparison JSONChanged files
skills/redpine-search/LICENSE →
skills/redpine-search/SKILL.md →
skills/redpine-search/references/billing.md →
skills/redpine-search/references/craft.md →
skills/redpine-search/references/search.md
--- before +++ after @@ -0,0 +1,78 @@ +# Using `search` and `search-<name>` well + +Both take the same arguments. `search` needs a `collection` from +`list_collections`; `search-<name>` has it bound. The authoritative field list +for `filters` lives in the tool's own schema. Read it with `inspect-tool`; it +is long and it differs by collection. What follows is how to use it, not what +is in it. + +## Query + +- A sentence stating the actual question, up to 1000 characters. Semantic + retrieval ranks by meaning; a list of keywords retrieves worse than prose. +- Constraints go in `filters`, not in the query text. "Nature papers after + 2020 on X" is `query: "X"` plus a journal and date filter. Leaving the + constraint in the prose makes it a soft preference the ranker may ignore. +- `limit` is 1 to 30, default 10. Preview at the default, then unlock + selectively, rather than asking for 30 up front. +- `include_figures` adds latency. Set it only when the question is about a + figure or visual data. + +## Filters: which field to reach for + +- **A named journal.** Filter on its identifier field, not its name. One + journal appears under several spellings; the identifier survives them all. + The schema names the field and the formats it accepts. +- **A subject across publications.** Look for a cross-brand subject field + before filtering on journal. If the collection has one, it is the right + axis for "by topic" questions. +- **A kind of article.** Filter on article type (reviews, case reports, + protocols) or on section (methods, results) when the user wants a kind of + evidence rather than a topic. Section filtering is how you answer "what + methods did they use" without reading every chunk. +- **A date window.** ISO `YYYY-MM-DD`; ranges are detected in any range + operator. +- **Excluding.** There is no separate exclusion syntax. Negate with `not` + in the flat form, or `ne` / `not_in` in the structured form. +- **Journal-level metrics.** Range operators only. The metric is OpenAlex + two-year mean citedness. It is **not** the Journal Impact Factor and must + not be described as one. A journal with no value is absent from results, + not scored zero. + +## Two filter formats, never mixed + +Flat key-value (preferred; top-level keys are ANDed): + +```json +{"publisher": ["Elsevier", "Springer"], + "publication_date": {"gte": "2020-01-01", "lt": "2024-01-01"}} +``` + +Structured DSL, only when you need OR or nesting: + +```json +{"or": [{"field": "journal", "eq": "Nature"}, + {"field": "journal", "eq": "Science"}]} +``` + +The server picks the format from the top-level keys. Combinator or `field` at +the top means DSL; anything else means flat. One request, one format. + +## Read the response, not just the results + +- `filterWarnings`: you filtered on a field that is not indexed for this + collection. The call still ran, as a full scan. Rephrase against an indexed + field, and tell the user the filter was not exact. +- `journalMetricExpansions`: what a metric threshold resolved to. Quote it + when the user asked for "high-impact" anything, so they see what that meant + in practice. +- Each chunk carries its source metadata. Cite from it, as a link. Build the + URL from whichever identifier the payload provides, in this order: + `url` as given; `https://doi.org/<doi>`; + `https://pmc.ncbi.nlm.nih.gov/articles/<pmcid>/`; + `https://pubmed.ncbi.nlm.nih.gov/<pmid>/`. Do not invent a URL when none of + those is present; cite title, publisher, and year and say the record has no + resolvable link. +- Shape of a finished answer: claims with inline links where they are made, a + `Sources` list at the end (title, publisher, year, link, one per line), and + the charge and remaining balance as the final line.
Full technical diff · 13 changed fields
changed /files/.app.json/sha256
"99e4bc0bc6d305e899f7db9bb294f48c0d1f5924da29937dfe0c4744edd4c264"
"8af0a36b94d47fe851ae8923f7496ea4d797c54d862e04dc93bace040571d11b"
changed /files/.app.json/size
127
99
changed /files/.codex-plugin~1plugin.json/sha256
"f1010a87d6dd489f058f598db4c609f81093813f1e6b9689b20b63aec088f27f"
"1d830bf85a291173ae965a6f917011ac1e688a4955395bdc7dec8fbf876f309d"
changed /files/.codex-plugin~1plugin.json/size
4238
4704
added /files/.mcp.json
Field was absent
{
"sha256": "17fd688cca7991b2412d1b55692317a2d6a68f3d845a66368b4c28717a844fff",
"size": 90
}added /files/assets~1icon.svg
Field was absent
{
"sha256": "b37aa36831366e7c55dd033dc16b703d18f5e0c81f374eb04e7f018612662a72",
"size": 673
}removed /files/skills~1redpine-search~1LICENSE
{
"sha256": "8c29581e7d3f5676b658b024ca03c4226f4da54ba103bc13855856a340d8556e",
"size": 1078
}Field is absent
changed /files/skills~1redpine-search~1SKILL.md/sha256
"f4bbd3c2483ac3a9f05b4f1c6936a7817230eeafe38964e9436dec584ef5db79"
"c7d9228655e16d32ba471d80b57b2adbcb4c6bd11de57bff9c23a39ee7fcc9c4"
changed /files/skills~1redpine-search~1SKILL.md/size
5436
9953
added /files/skills~1redpine-search~1references~1billing.md
Field was absent
{
"sha256": "687d4a7dccec5f46aaf96d27ba724fd153a2284d512f606b988251341dc4eead",
"size": 2161
}added /files/skills~1redpine-search~1references~1craft.md
Field was absent
{
"sha256": "c10686a0ef700cc4bb7dd659b630fe2b567318dfb6fa5a729bccd8406e112b66",
"size": 2214
}added /files/skills~1redpine-search~1references~1search.md
Field was absent
{
"sha256": "94bb8fbb80c399170b579a64038099c4f4303b23a79220cd474640c2fbc8725b",
"size": 3685
}added /files/skills~1redpine-search~1references~1troubleshooting.md
Field was absent
{
"sha256": "768a2efadb21ede8820c8568f8a55ae2a63829e1a0390a36921c5a2d27180916",
"size": 2501
}Full snapshot data
{
"files": {
".app.json": {
"sha256": "8af0a36b94d47fe851ae8923f7496ea4d797c54d862e04dc93bace040571d11b",
"size": 99
},
".codex-plugin/plugin.json": {
"sha256": "1d830bf85a291173ae965a6f917011ac1e688a4955395bdc7dec8fbf876f309d",
"size": 4704
},
".mcp.json": {
"sha256": "17fd688cca7991b2412d1b55692317a2d6a68f3d845a66368b4c28717a844fff",
"size": 90
},
"assets/icon.svg": {
"sha256": "b37aa36831366e7c55dd033dc16b703d18f5e0c81f374eb04e7f018612662a72",
"size": 673
},
"skills/redpine-search/SKILL.md": {
"sha256": "c7d9228655e16d32ba471d80b57b2adbcb4c6bd11de57bff9c23a39ee7fcc9c4",
"size": 9953
},
"skills/redpine-search/references/billing.md": {
"sha256": "687d4a7dccec5f46aaf96d27ba724fd153a2284d512f606b988251341dc4eead",
"size": 2161
},
"skills/redpine-search/references/craft.md": {
"sha256": "c10686a0ef700cc4bb7dd659b630fe2b567318dfb6fa5a729bccd8406e112b66",
"size": 2214
},
"skills/redpine-search/references/search.md": {
"sha256": "94bb8fbb80c399170b579a64038099c4f4303b23a79220cd474640c2fbc8725b",
"size": 3685
},
"skills/redpine-search/references/troubleshooting.md": {
"sha256": "768a2efadb21ede8820c8568f8a55ae2a63829e1a0390a36921c5a2d27180916",
"size": 2501
}
}
}SHA-256 of public snapshot: 85526d0009f777ad24ea4423a5e11b72c03974e6e6d3a1c5ac413d6cac81a8de