Tool tree
gradeNot graded
page: Every page
search_knowledgeAnswer
Search the Pirate Skills knowledge: the Growth Codex, the Builder Codex and Insights. Returns the best matching chapters with a link; for a signed-in person each also carries a short excerpt. Without sign-in it returns titles and links only (which codex, the title, the url): the person signs in for the excerpts. Cite the url of every chapter you use in your answer.
View tool JSON
{
"name": "search_knowledge",
"kind": "answer",
"impl": "imperative",
"description": "Search the Pirate Skills knowledge: the Growth Codex, the Builder Codex and Insights. Returns the best matching chapters with a link; for a signed-in person each also carries a short excerpt. Without sign-in it returns titles and links only (which codex, the title, the url): the person signs in for the excerpts. Cite the url of every chapter you use in your answer.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2,
"maxLength": 200
},
"limit": {
"default": 5,
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"required": [
"query"
]
},
"page": "/"
}list_eventsAnswer
Upcoming Pirate Skills events, soonest first by date, with a link to each event page (a Forge session links the Forge page, where the seat is sold) and, for a signed-in person, whether they are registered. A Forge cohort appears only as its start – the first session of its Build or Grow part; its weekly sessions are never listed here. Present them in that date order, and give each event its one line from `about` – what it is and who it is for – so the person knows what they are looking at (an event without `about` is a one-off; its subtitle says it). When the person asks about their own Forge cohort or its sessions, use my_forge_sessions instead. `cadence` is how often that event's format meets – weekly only for the Forge (every week of a six-week phase), monthly for Vibe Coding Cologne, the Pirate Lab and AI Compass, quarterly for the Vibe Hackathon, one-off otherwise; give each event its own and never carry one event's cadence over to the others. `when` is the day and time to quote, in Berlin time; `startsAt`/`endsAt` are the same moment in UTC, for working with, never for quoting (the Captain's copy leaves them out, and gives a subtitle an earlier event already carried as null).
View tool JSON
{
"name": "list_events",
"kind": "answer",
"impl": "imperative",
"description": "Upcoming Pirate Skills events, soonest first by date, with a link to each event page (a Forge session links the Forge page, where the seat is sold) and, for a signed-in person, whether they are registered. A Forge cohort appears only as its start – the first session of its Build or Grow part; its weekly sessions are never listed here. Present them in that date order, and give each event its one line from `about` – what it is and who it is for – so the person knows what they are looking at (an event without `about` is a one-off; its subtitle says it). When the person asks about their own Forge cohort or its sessions, use my_forge_sessions instead. `cadence` is how often that event's format meets – weekly only for the Forge (every week of a six-week phase), monthly for Vibe Coding Cologne, the Pirate Lab and AI Compass, quarterly for the Vibe Hackathon, one-off otherwise; give each event its own and never carry one event's cadence over to the others. `when` is the day and time to quote, in Berlin time; `startsAt`/`endsAt` are the same moment in UTC, for working with, never for quoting (the Captain's copy leaves them out, and gives a subtitle an earlier event already carried as null).",
"inputSchema": {
"type": "object",
"properties": {
"type": {
"description": "Filter by event type label, e.g. \"Pirate Lab\" or \"Vibe Coding Cologne\". Omit for all.",
"type": "string"
},
"limit": {
"default": 10,
"type": "integer",
"minimum": 1,
"maximum": 50
}
}
},
"page": "/"
}get_offersAnswer
What Pirate Skills sells right now, with prices, read live (only what is on sale appears, and only what create_checkout sells): the Pirate Pass and the Forge Pass (monthly, prices before VAT, three-month minimum), which replace the Pirate Forge tiers (those are listed only until the passes are on sale), and a Captain on Deck session with Ben (the price is per session; up to 10 in one checkout) while it is on sale – each bought with create_checkout. `priceText` is the price to quote: euros, plus US dollars once a dollar price is set (both in one string, "€ / $"), with the person's likely currency first. An offer marked purchasable false carries a note saying why (a Pirate Pass holder cannot buy the Forge Pass on top). Event tickets (the Vibe Hackathon) are not listed here: a ticket is bought on the event page from list_events, where the price depends on the date and tier. Free events are registered with register_for_event, and the free Codex is read with search_knowledge. Every purchase is paid by the person on Stripe's own page; no agent takes a card or charges anyone.
View tool JSON
{
"name": "get_offers",
"kind": "answer",
"impl": "imperative",
"description": "What Pirate Skills sells right now, with prices, read live (only what is on sale appears, and only what create_checkout sells): the Pirate Pass and the Forge Pass (monthly, prices before VAT, three-month minimum), which replace the Pirate Forge tiers (those are listed only until the passes are on sale), and a Captain on Deck session with Ben (the price is per session; up to 10 in one checkout) while it is on sale – each bought with create_checkout. `priceText` is the price to quote: euros, plus US dollars once a dollar price is set (both in one string, \"€ / $\"), with the person's likely currency first. An offer marked purchasable false carries a note saying why (a Pirate Pass holder cannot buy the Forge Pass on top). Event tickets (the Vibe Hackathon) are not listed here: a ticket is bought on the event page from list_events, where the price depends on the date and tier. Free events are registered with register_for_event, and the free Codex is read with search_knowledge. Every purchase is paid by the person on Stripe's own page; no agent takes a card or charges anyone.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/"
}