Skip to content
Agentmart
Submit a tool

AGENTS.md · RaspberryPiFoundation/blockly

AGENTS.md from RaspberryPiFoundation/blockly: 261 lines covering Project ownership, Repository structure, Commands, Shared configuration and more.

Template by RaspberryPiFoundation

IndexedApache-2.0★ 13,591
Write a review

Chalk Labs

Need help deploying AGENTS.md · RaspberryPiFoundation/blockly?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode, Claude Code. Read the repository before you give any tool access to your data.

curl -fsSL https://raw.githubusercontent.com/RaspberryPiFoundation/blockly/main/AGENTS.md -o AGENTS.md

Read it and adapt it to your project before use.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

The AGENTS.md file that RaspberryPiFoundation/blockly (13,591 stars) keeps for coding agents. It has 261 lines in 11 sections: Project ownership; Repository structure; Commands; Shared configuration; Making changes; Dependencies; Commits and pull requests; AI policy; Versioning and publishing; Code conventions; Further reading. Use it as a model for your own project's instructions.

Use cases: prompt-engineering, code-generation

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

What's in it

An AGENTS.md file: instructions coding agents (Codex, Cursor, Copilot, Gemini CLI and others) read before working in a repo.

For
Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode, Claude Code
Length
261 lines
File
AGENTS.md

Sections

  1. Project ownership
  2. Repository structure
  3. Commands
  4. Shared configuration
  5. Making changes
  6. Dependencies
  7. Commits and pull requests
  8. AI policy
  9. Versioning and publishing
  10. Code conventions
  11. Further reading

First lines (shown under the repo's Apache-2.0 license)

# AGENTS.md

## Project ownership

Blockly is maintained by the **Raspberry Pi Foundation**.
`RaspberryPiFoundation/blockly` is the canonical upstream. It is **not** a fork of
`google/blockly`, and there is no separate Google-maintained version that this one
tracks or defers to.

Blockly was originally developed at Google, so a lot of legacy remains and it is easy to
conclude otherwise. Two things in particular are not evidence of ownership:

- Most existing files carry a `Copyright <year> Google LLC` header. **Leave them alone.**
  Only new files get the Raspberry Pi Foundation copyright.
- Several hundred links to `developers.google.com/blockly` are still embedded in TSDoc
  and comments. They are stale. Do not add new ones.

When adding a reference or link, use the current locations:

| For               | Use                                                       |
| ----------------- | --------------------------------------------------------- |
| Source repository | `https://github.com/RaspberryPiFoundation/blockly`        |
| Issues            | `https://github.com/RaspberryPiFoundation/blockly/issues` |
| Documentation     | `https://docs.blockly.com`                                |
| Project home      | `https://blockly.com`                                     |

The npm package name is unchanged: the core library is still published as `blockly`.

## Repository structure

This is an npm + Nx monorepo. Workspaces are `packages/*` and `packages/plugins/*`.

| Path                 | Package name   | What it is                                                                      |
| -------------------- | -------------- | ------------------------------------------------------------------------------- |
| `packages/blockly/`  | `blockly`      | The core library                                                                |
| `packages/plugins/*` | `@blockly/*`   | First-party plugins (fields, themes, workspace add-ons) and their build tooling |
| `packages/docs/`     | `blockly-docs` | The Docusaurus developer documentation site                                     |

Detailed guidance lives next to the code it describes. Read the relevant one before working in that area, rather than loading all of them:

- [`packages/blockly/AGENTS.md`](packages/blockly/AGENTS.md) — core library
- [`packages/plugins/AGENTS.md`](packages/plugins/AGENTS.md) — plugins
- [`packages/docs/AGENTS.md`](packages/docs/AGENTS.md) — documentation site

## Commands

Run these from the repo root. Root scripts fan out across workspaces via Nx.

```bash
npm ci                 # Install. Re-run after any pull that changes package-lock.json.

npm run build          # Build every package except the docs site
npm run build-all      # Build everything, including the docs site
npm run build-docs     # Docs site only

npm run test           # Full test suite across all packages. Slow.

npm run lint           # ESLint across all workspaces
npm run lint-fix
npm run format         # Prettier write, whole repo
npm run format-check

npm run clean          # Reset the Nx cache and clean every package
```

To work on a single package, either `cd` into it and use its own scripts, or target it
with Nx from the root. The Nx project name is the package's `name` field, which for
plugins is often not the same as the directory name — run `npx nx show projects` to list
them rather than guessing.

```bash
npx nx show projects
npx nx run blockly:test
npx nx run @blockly/field-slider:test
npx nx run-many -t build --projects=@blockly/field-slider
```

Two things to watch out for:

- `format` and `format-check` exist **only** at the root. Prettier is configured once
  for the whole repo, so there is no per-package equivalent.
- `build`, `test`, `clean`, `lint`, and `start` exist at both levels and mean different
  things. At the root they fan out through Nx; inside a package they run that package's
  own tooling.

## Shared configuration

Tooling is configured once at the root and covers every package. Do not add per-package
copies of these:

- `eslint.config.mjs` — a single flat config with per-package `files` sections
- `.prettierrc.js` — shared base plus `overrides` for core, plugins, and docs, which
  each use different settings
- `nx.json` — target defaults and caching
- `lerna.json` — versioning and publishing
- `commitlint.config.mjs` — conventional commit rules

## Making changes

- **Keep changes minimal and pull requests small.** Change what the task requires and
  nothing else. When you notice unrelated problems along the way, report them rather
  than folding them into the same change.

- **Reach for command line tools before writing tooling.** Most build, migration, and
  inspection tasks are one invocation of `git`, `grep`, `find`, `sed`, or an existing
  `npx` package. Prefer that to a script with its own argument parsing, logging, and
  error handling. A bespoke script is code someone has to maintain; a command is not.
  The same goes for scripts you write for yourself mid-task — prefer the one-liner you
  can throw away.

- **Fix root causes, not symptoms.** Prefer the fix that removes the problem to the one
  that routes around it. Adding a path to `.prettierignore` or an `eslint.config.mjs`
  override, special-casing a single block type, or skipping a failing test are all
  signals that the real issue is still there. Where an exception genuinely is the right
  call, say why in a comment.

- **Leave debugging code alone.** Do not remove or revert `console.log` calls, temporary
  assertions, commented-out experiments, or similar scaffolding that someone else added
  — it is probably load-bearing for whatever they are in the middle of. You can point it
  out, but clean it up only when asked, or when explicitly preparing a final commit or
  pull request.

- **Take a final pass before you finish.** Re-read the whole diff looking for things to
  condense or drop: code that is no longer needed, comments that no longer describe what
  the code does, an abstraction with one caller, your own debugging leftovers.

## Dependencies

`packages/blockly` has **no runtime dependencies**. That is deliberate — it is loaded
into other people's applications — so do not add one.

A new `devDependency` needs a case: what it does, why a few lines of our own code or an
existing dependency is worse, and what it costs in install size and ongoing maintenance.
Weigh that with the author before adding it, not after.

For plugins, `blockly` is always a peer dependency; see
[`packages/plugins/AGENTS.md`](packages/plugins/AGENTS.md).

## Commits and pull requests

Commits follow the conventional commit spec, enforced by commitlint. The type should be
one of `build`, `chore`, `ci`, `docs`, `feat`, `fix`, `refactor`, `release`, `revert`,
or `test`.

Breaking changes must append `!` to the type (for example `feat!:`) **and** be called out
in the pull request description. See [`packages/blockly/AGENTS.md`](packages/blockly/AGENTS.md)
for what counts as a breaking change.

## AI policy

Contributions to Blockly are governed by the
[AI policy](packages/docs/docs/guides/contribute/core/ai_policy.mdx). Read it before
helping with anything that will become a pull request. What it means for you:

- **Do not write pull request descriptions or GitHub comments.** They must be written by
  the human contributor. You may translate text they have written, and you may review a
  draft they have written, but do not draft one or rewrite theirs wholesale. If asked to
  write one, decline, point to the policy, and offer to review their draft instead.
- **Do not work on `good first issue`s.** If the task is an issue with that label, do not
  write code or PR text for it. Those issues exist so new contributors learn Blockly by

Signals

Stars
13,591
Forks
3,879
Open issues
378
Last commit (this folder)
Sep 23, 2026 (1 month ago)
Last release
Oct 13, 2026 (17 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get AGENTS.md · RaspberryPiFoundation/blockly running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying AGENTS.md · RaspberryPiFoundation/blockly?

CallGet help
Cite this page

AGENTS.md · RaspberryPiFoundation/blockly. Agent Mart. https://agentmart.dev/templates/raspberrypifoundation-blockly-agents-md (last updated 2026-10-24)