Replace the inherited AI ban in AGENTS.md with instructions for this fork - #1
Open
matasarei wants to merge 1 commit into
Open
Replace the inherited AI ban in AGENTS.md with instructions for this fork#1matasarei wants to merge 1 commit into
matasarei wants to merge 1 commit into
Conversation
…r this fork
The AGENTS.md at the root is upstream Haiku's, unchanged by the fork. Its one
policy is "No AI-generated code", so every coding agent that opens this tree is
first told to refuse the kind of work every commit on this branch was made
with. That leaves agents with no project guidance at all: nothing about the
two build trees, the -mcpu=750 pin on the kernel and loader, the byte-order
and MMIO-ordering rules this port has already paid for, or how to test before
spending an image build.
Replace it with a file that describes how the fork is actually maintained and
what it needs to stay maintainable:
* ground rules: a human is accountable, agents never push or merge, agent
work is disclosed with the trailer already in use, no invented hardware
behaviour, MIT license and provenance for ported code and firmware;
* scope: PowerPC only. Non-PPC architecture code is to be removed rather
than maintained, with the candidate paths, what must stay (generic and
host-side code), and the one-subsystem-per-commit method; upstream fixes
come in by cherry-pick;
* build: the generated.ppc / generated.ppc-g4 trees, HAIKU_PPC_CPU/TUNE/
NOVEC, the kernel and loader pin, -Werror being off for ppc, single
targets, where image contents and the version live;
* test before an image: compile in both trees, host-side tests via
BuildPlatformTest, CppUnit tests, emulator boot with the serial-log
check, then named hardware; tests land in the same commit as the code;
* PowerPC correctness rules distilled from the commit history;
* Haiku coding style, checkstyle, the commit subject convention;
* a map of where the ppc code lives.
Also add a one-line CLAUDE.md that imports AGENTS.md, since Claude Code reads
CLAUDE.md and not AGENTS.md by default.
Every path, target name and variable named in the file was checked against
the tree (ArchitectureRules, DefaultBuildProfiles, TestsRules, configure,
the Jamfiles). One item is left for the maintainer to fill in: the exact
dingusppc command line, which is not recorded anywhere in the repository.
No code is changed by this commit and nothing was built.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hi Sean,
First, a personal word. I think this fork should find its own way, and I fully support the initiative and the motivation behind it. Getting Haiku to the desktop on real G3 and G4 hardware, with sound, WiFi and native modesetting, is remarkable work, and I would like to help it stay healthy as it grows. Issues are disabled on the repository, so this comes as a pull request rather than a proposal. Take whatever is useful and drop the rest.
Why
AGENTS.mdat the repository root is still upstream Haiku's file. Its only content is "No AI-generated code", so every coding agent that opens this tree is told to refuse the kind of work this whole branch was made with, and gets no guidance about the project itself: the two build trees, the-mcpu=750pin on the kernel and loader, the byte-order and MMIO-ordering rules the port has already learned the hard way, or how to test before spending an image build.What this adds
A short
AGENTS.mdwritten for this fork, plus a one-lineCLAUDE.mdcontaining@AGENTS.md. Claude Code readsCLAUDE.md, notAGENTS.md, so without that import the file is skipped by the tool used for most commits here.Sections:
Co-Authored-Bytrailer already in use; commit messages say what was verified where; no invented hardware behaviour; MIT license and provenance for ported code and firmware. Modelled on the Linux kernel'scoding-assistants.rst, LLVM's AI tool policy and Fedora's AI-assisted contribution policy.haiku/master, so merging is not realistic anyway.generated.ppc/generated.ppc-g4,HAIKU_PPC_CPU/_TUNE/_NOVEC, the kernel and loader pin,-Werrorbeing off for ppc, single targets, where image contents and the version live.BuildPlatformTest, CppUnit tests, emulator boot with the serial-log check, then named hardware. New code and its tests land in the same commit; a definition of done.eieio/sync, AltiVec, FCode ROMs vs BIOS, no serial port, no battery).checkstyle.py, thearea: whatsubject convention.The file is deliberately kept short. Anything that needs more room (for example a step-by-step procedure for removing a non-PPC subsystem) belongs in a skill or a doc under
docs/develop/, not inAGENTS.md.What was checked
Every path, target name, variable and flag in the file was checked against the tree (
ArchitectureRules,DefaultBuildProfiles,TestsRules,configure, the Jamfiles, the commit messages). No code is changed and nothing was built as part of this PR.One thing left for you
The exact dingusppc command line and machine config are not recorded anywhere in the repository. There is an HTML comment placeholder in the "Emulator boot" step; pasting yours there makes the boot check reproducible for anyone.
Skills are recommended
AGENTS.mdis kept short on purpose. Procedures that need more room belong in skills (.claude/skills/<name>/SKILL.md, or the equivalent for other agent tools), which load only when the task calls for them. Write your own for the things only this project knows, and pick up a few existing ones for the general discipline. Not too many; each one is more context to read.Worth writing for Tabby:
SubInclude, build both trees, record removed paths in the commit).Existing ones that fit, from obra/superpowers:
-mtunereorder, the PLL index barrier, the FIFO timing) were exactly that kind of work.For writing your own, anthropics/skills ships a
skill-creatorthat walks through the format.Noticed along the way, not changed here
build/jam/images/definitions/minimumcopies NetSurf from the absolute host path/work/netsurf-build/nspkg/apps, so an image build on another machine depends on that directory existing. The file recommends guarding such steps.-Werroris disabled for ppc, so new warnings go unnoticed unless someone reads the log.Screenshot/screenshotcatalogs,CollatorTest.cpp/collatorTest.cpp).ReadMe.Compiling.mdalready requires a case-sensitive filesystem, so this is only a note for contributors.