Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions content/docs/cookbook/authors/aspectrr.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Collin Pfeifer
description: 3 recipes contributed to the Steel Cookbook by Collin Pfeifer.
llm: false
---

<AuthorProfile handle="aspectrr" name={"Collin Pfeifer"} avatar="https://github.com/aspectrr.png?size=40" />
Expand Down
1 change: 1 addition & 0 deletions content/docs/cookbook/authors/bsparker.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Brian Sparker
description: 1 recipe contributed to the Steel Cookbook by Brian Sparker.
llm: false
---

<AuthorProfile handle="bsparker" name={"Brian Sparker"} avatar="https://github.com/bsparker.png?size=40" />
Expand Down
1 change: 1 addition & 0 deletions content/docs/cookbook/authors/danew.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Dane Wilson
description: 1 recipe contributed to the Steel Cookbook by Dane Wilson.
llm: false
---

<AuthorProfile handle="danew" name={"Dane Wilson"} avatar="https://github.com/danew.png?size=40" />
Expand Down
1 change: 1 addition & 0 deletions content/docs/cookbook/authors/hussufo.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Hussien Hussien
description: 4 recipes contributed to the Steel Cookbook by Hussien Hussien.
llm: false
---

<AuthorProfile handle="hussufo" name={"Hussien Hussien"} avatar="https://github.com/hussufo.png?size=40" />
Expand Down
1 change: 1 addition & 0 deletions content/docs/cookbook/authors/jagadeshjai.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Jagadesh Jai
description: 4 recipes contributed to the Steel Cookbook by Jagadesh Jai.
llm: false
---

<AuthorProfile handle="jagadeshjai" name={"Jagadesh Jai"} avatar="https://github.com/jagadeshjai.png?size=40" />
Expand Down
1 change: 1 addition & 0 deletions content/docs/cookbook/authors/junhsss.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Jun Ryu
description: 43 recipes contributed to the Steel Cookbook by Jun Ryu.
llm: false
---

<AuthorProfile handle="junhsss" name={"Jun Ryu"} avatar="https://github.com/junhsss.png?size=40" />
Expand Down
1 change: 1 addition & 0 deletions content/docs/cookbook/authors/nibzard.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Nikola Balic
description: 3 recipes contributed to the Steel Cookbook by Nikola Balic.
llm: false
---

<AuthorProfile handle="nibzard" name={"Nikola Balic"} avatar="https://github.com/nibzard.png?size=40" />
Expand Down
3 changes: 2 additions & 1 deletion lib/agent-instructions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ export const AGENT_INSTRUCTIONS = `# Steel Documentation
- The Python package installs as \`pip install steel-sdk\` but imports as \`from steel import Steel\`
- \`sessions.create()\` accepts an optional \`sessionId\` (Node) / \`session_id\` (Python) UUID when you need the ID before the session exists; omit it and Steel generates one
- The Python \`sessions.create()\` session timeout param is \`api_timeout\` (not \`timeout\`, which is the HTTP request timeout)
- Individual doc pages are available as markdown at \`/llms.mdx/<page-path>\`
- Any docs page is available as markdown by appending \`.md\` to its URL, for example \`https://docs.steel.dev/overview/steel-cli.md\`; AI user agents (Claude, Cursor, GPT) receive markdown automatically at the canonical URL
- \`/llms-full.txt\` concatenates every page into one file (large, roughly 230k tokens); prefer fetching the individual \`.md\` pages you need over reading the whole bundle

`;
4 changes: 3 additions & 1 deletion scripts/sync-cookbook.ts
Original file line number Diff line number Diff line change
Expand Up @@ -576,7 +576,9 @@ async function emitAuthorPage(
const meta = authorMeta(handle, authors);
const count = matching.length;
const description = `${count} recipe${count === 1 ? '' : 's'} contributed to the Steel Cookbook by ${meta.name}.`;
const fm = frontmatter({ title: meta.name, description });
// Author pages are ego listings with little value for coding agents; keep
// them out of the llms.txt index and the llms-full.txt bundle.
const fm = frontmatter({ title: meta.name, description, llm: 'false' });
const body = `${renderAuthorProfile(handle, authors)}\n\n${renderRecipeGrid(matching)}`;
await fs.writeFile(path.join(AUTHORS_DIR, `${handle}.mdx`), `${fm}\n\n${body}\n`);
}
Expand Down
33 changes: 33 additions & 0 deletions tests/cookbook-llm-flags.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// ABOUTME: Guards the LLM-visibility contract for generated cookbook hub pages:
// ABOUTME: author pages are excluded from agent surfaces, topic pages are kept.

import { describe, expect, test } from 'bun:test';
import { Glob } from 'bun';
import matter from 'gray-matter';

async function frontmatter(file: string): Promise<Record<string, unknown>> {
return matter(await Bun.file(file).text()).data;
}

const authors = [
...new Glob('*.mdx').scanSync({ cwd: 'content/docs/cookbook/authors', absolute: true }),
];
const topics = [
...new Glob('*.mdx').scanSync({ cwd: 'content/docs/cookbook/topics', absolute: true }),
];

describe('cookbook hub LLM visibility', () => {
test('every author page is excluded from LLM surfaces', async () => {
expect(authors.length).toBeGreaterThan(0);
for (const file of authors) {
expect((await frontmatter(file)).llm).toBe(false);
}
});

test('topic pages remain visible to LLMs', async () => {
expect(topics.length).toBeGreaterThan(0);
for (const file of topics) {
expect((await frontmatter(file)).llm).not.toBe(false);
}
});
});
Loading