{"owner":"btraceio","repo":"btrace","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["CLAUDE.md","AGENTS.md"],"skills":{"CLAUDE.md":"# Claude Code Guide\n\nFollow the repository-wide rules in [AGENTS.md](AGENTS.md). This file intentionally contains only Claude-specific orientation; `AGENTS.md` is the canonical operational contract.\n\n## Common commands\n\nUse a workspace-local Gradle cache when appropriate, and redirect Gradle output to a log before filtering and reading it (see [AGENTS.md](AGENTS.md#build-and-verification)).\n\n```bash\n# Distribution and all unit tests\nGRADLE_USER_HOME=$(pwd)/.gradle-user ./gradlew :btrace-dist:build\n\n# Module, test class, or formatting check\nGRADLE_USER_HOME=$(pwd)/.gradle-user ./gradlew :btrace-agent:test\nGRADLE_USER_HOME=$(pwd)/.gradle-user ./gradlew :btrace-agent:test --tests '*InstrStackTest'\nGRADLE_USER_HOME=$(pwd)/.gradle-user ./gradlew spotlessCheck\n\n# Integration tests: build the distribution first\nGRADLE_USER_HOME=$(pwd)/.gradle-user ./gradlew -Pintegration :integration-tests:test\n\n# Intentional instrumentation-bytecode changes only\nGRADLE_USER_HOME=$(pwd)/.gradle-user ./gradlew test -PupdateTestData\n```\n\n## Where to look\n\n- Script compiler and verifier: `btrace-compiler`\n- Agent lifecycle and bytecode weaving: `btrace-agent` (instrumentation engine lives in its `io.btrace.instr` package)\n- Script API, runtime, and protocol: `btrace-core`, `btrace-runtime`\n- CLI: `btrace-client`; packaging: `btrace-dist`\n- Golden instrumentation data: `btrace-agent/src/test/resources/instrumentorTestData/`\n\n## Detailed references\n\n- [Documentation index](docs/README.md)\n- [Masked JAR architecture](docs/architecture/MaskedJarArchitecture.md) — required reading for distribution/class-loading changes\n- [Instrumentation backends](docs/architecture/InstrumentationBackends.md)\n- [Protocol architecture](docs/architecture/Version2ProtocolArchitecture.md)\n- [Extension development](docs/BTraceExtensionDevelopmentGuide.md)\n- [Troubleshooting](docs/Troubleshooting.md)\n","AGENTS.md":"# Repository Guide for Coding Agents\n\n## Start here\n\nBTrace is a Java tracing tool: the client compiles and sends a script, the agent instruments the target JVM, and the runtime emits results. The root project is a multi-module Gradle build.\n\n- `btrace-agent` — attachable agent, script lifecycle, and bytecode instrumentation/weaving\n- `btrace-compiler` — script verification and compilation\n- `btrace-runtime` / `btrace-core` — script APIs, runtime support, and protocol\n- `btrace-client` — CLI and attachment client\n- `btrace-dist` — distribution assembly; `integration-tests` — end-to-end tests\n- `btrace-extensions/*` — extension API and implementations\n\nFor the developer command reference and code-navigation pointers, see [CLAUDE.md](CLAUDE.md). For user and contributor documentation, start at [docs/README.md](docs/README.md).\n\n## Non-negotiable rules\n\n- Do not commit unless the changes are fully tested or the user explicitly requests a commit.\n- Preserve unrelated working-tree changes.\n- In Java code, import types and use simple names; do not introduce fully qualified type names in source.\n- Main code targets Java 8 and uses the Java 11 toolchain. Follow Spotless/Google Java Format.\n- Unit tests live in `src/test/java` and use `*Test`; integration tests live in `integration-tests/src/test/java`.\n- Changes to user-visible behavior that crosses modules or process boundaries must include end-to-end functional coverage in `integration-tests`; unit and component tests are required where useful but are not a substitute for exercising the real client, agent, target JVM, and protocol interaction.\n- Confirm that a new test or build gate **fails when it should**, not only that it passes. Run it against the unfixed code, or against input it must reject, and check the failure is the expected one. A check that cannot fail reports success regardless of what the code does, and reads as coverage while providing none. Where a revert is used to produce the failure, revert only the code under test: reverting too much fails for an unrelated reason and proves nothing about the behavior being asserted.\n\n## Build and verification\n\nRun Gradle with a workspace-local cache in restricted environments:\n\n```bash\nGRADLE_USER_HOME=$(pwd)/.gradle-user ./gradlew :module:test\n```\n\nDo not consume Gradle output directly. Redirect it to a file, filter it to relevant lines, then read that file. Use `spotlessCheck` for validation and `spotlessApply` only when formatting changes are intended. Build `:btrace-dist:build` before integration tests.\n\nIf a restricted network environment causes address-selection failures, add:\n\n```bash\nJAVA_TOOL_OPTIONS=\"-Djava.net.preferIPv4Stack=true -Djava.net.preferIPv6Addresses=false\"\n```\n\n## Distribution changes\n\n`btrace.jar` is a masked single-JAR distribution. Classes must be assigned to bootstrap, agent, client, or shared sections deliberately. Any masked-JAR structure change requires:\n\n```bash\n./gradlew clean :btrace-dist:btraceJar\n```\n\nRead [Masked JAR Architecture](docs/architecture/MaskedJarArchitecture.md) before modifying its class layout or loader behavior.\n\n## Documentation placement\n\n- User-facing and contributor documentation belongs in `docs/`; keep [docs/README.md](docs/README.md) current when adding a guide.\n- Plans and session notes belong in `internal/plans/` (or `internal/superpowers/plans/`).\n- Design/requirement specs belong in `internal/specs/` (or `internal/superpowers/specs/`); libretto/muse files belong in `internal/libretti/`.\n- Never create or write to a singular `doc/` directory, or add plans, agent notes, or internal material below `docs/`.\n\n## Reference map\n\n- [Contribution workflow](CONTRIBUTING.md)\n- [Instrumentation backend selection](docs/architecture/InstrumentationBackends.md)\n- [v2 wire protocol](docs/architecture/Version2ProtocolArchitecture.md)\n- [Extension development](docs/BTraceExtensionDevelopmentGuide.md) and [interface rules](docs/ExtensionInterfaceRules.md)\n- [Troubleshooting](docs/Troubleshooting.md)\n"},"files":{"CLAUDE.md":"# Claude Code Guide\n\nFollow the repository-wide rules in [AGENTS.md](AGENTS.md). This file intentionally contains only Claude-specific orientation; `AGENTS.md` is the canonical operational contract.\n\n## Common commands\n\nUse a workspace-local Gradle cache when appropriate, and redirect Gradle output to a log before filtering and reading it (see [AGENTS.md](AGENTS.md#build-and-verification)).\n\n```bash\n# Distribution and all unit tests\nGRADLE_USER_HOME=$(pwd)/.gradle-user ./gradlew :btrace-dist:build\n\n# Module, test class, or formatting check\nGRADLE_USER_HOME=$(pwd)/.gradle-user ./gradlew :btrace-agent:test\nGRADLE_USER_HOME=$(pwd)/.gradle-user ./gradlew :btrace-agent:test --tests '*InstrStackTest'\nGRADLE_USER_HOME=$(pwd)/.gradle-user ./gradlew spotlessCheck\n\n# Integration tests: build the distribution first\nGRADLE_USER_HOME=$(pwd)/.gradle-user ./gradlew -Pintegration :integration-tests:test\n\n# Intentional instrumentation-bytecode changes only\nGRADLE_USER_HOME=$(pwd)/.gradle-user ./gradlew test -PupdateTestData\n```\n\n## Where to look\n\n- Script compiler and verifier: `btrace-compiler`\n- Agent lifecycle and bytecode weaving: `btrace-agent` (instrumentation engine lives in its `io.btrace.instr` package)\n- Script API, runtime, and protocol: `btrace-core`, `btrace-runtime`\n- CLI: `btrace-client`; packaging: `btrace-dist`\n- Golden instrumentation data: `btrace-agent/src/test/resources/instrumentorTestData/`\n\n## Detailed references\n\n- [Documentation index](docs/README.md)\n- [Masked JAR architecture](docs/architecture/MaskedJarArchitecture.md) — required reading for distribution/class-loading changes\n- [Instrumentation backends](docs/architecture/InstrumentationBackends.md)\n- [Protocol architecture](docs/architecture/Version2ProtocolArchitecture.md)\n- [Extension development](docs/BTraceExtensionDevelopmentGuide.md)\n- [Troubleshooting](docs/Troubleshooting.md)\n","AGENTS.md":"# Repository Guide for Coding Agents\n\n## Start here\n\nBTrace is a Java tracing tool: the client compiles and sends a script, the agent instruments the target JVM, and the runtime emits results. The root project is a multi-module Gradle build.\n\n- `btrace-agent` — attachable agent, script lifecycle, and bytecode instrumentation/weaving\n- `btrace-compiler` — script verification and compilation\n- `btrace-runtime` / `btrace-core` — script APIs, runtime support, and protocol\n- `btrace-client` — CLI and attachment client\n- `btrace-dist` — distribution assembly; `integration-tests` — end-to-end tests\n- `btrace-extensions/*` — extension API and implementations\n\nFor the developer command reference and code-navigation pointers, see [CLAUDE.md](CLAUDE.md). For user and contributor documentation, start at [docs/README.md](docs/README.md).\n\n## Non-negotiable rules\n\n- Do not commit unless the changes are fully tested or the user explicitly requests a commit.\n- Preserve unrelated working-tree changes.\n- In Java code, import types and use simple names; do not introduce fully qualified type names in source.\n- Main code targets Java 8 and uses the Java 11 toolchain. Follow Spotless/Google Java Format.\n- Unit tests live in `src/test/java` and use `*Test`; integration tests live in `integration-tests/src/test/java`.\n- Changes to user-visible behavior that crosses modules or process boundaries must include end-to-end functional coverage in `integration-tests`; unit and component tests are required where useful but are not a substitute for exercising the real client, agent, target JVM, and protocol interaction.\n- Confirm that a new test or build gate **fails when it should**, not only that it passes. Run it against the unfixed code, or against input it must reject, and check the failure is the expected one. A check that cannot fail reports success regardless of what the code does, and reads as coverage while providing none. Where a revert is used to produce the failure, revert only the code under test: reverting too much fails for an unrelated reason and proves nothing about the behavior being asserted.\n\n## Build and verification\n\nRun Gradle with a workspace-local cache in restricted environments:\n\n```bash\nGRADLE_USER_HOME=$(pwd)/.gradle-user ./gradlew :module:test\n```\n\nDo not consume Gradle output directly. Redirect it to a file, filter it to relevant lines, then read that file. Use `spotlessCheck` for validation and `spotlessApply` only when formatting changes are intended. Build `:btrace-dist:build` before integration tests.\n\nIf a restricted network environment causes address-selection failures, add:\n\n```bash\nJAVA_TOOL_OPTIONS=\"-Djava.net.preferIPv4Stack=true -Djava.net.preferIPv6Addresses=false\"\n```\n\n## Distribution changes\n\n`btrace.jar` is a masked single-JAR distribution. Classes must be assigned to bootstrap, agent, client, or shared sections deliberately. Any masked-JAR structure change requires:\n\n```bash\n./gradlew clean :btrace-dist:btraceJar\n```\n\nRead [Masked JAR Architecture](docs/architecture/MaskedJarArchitecture.md) before modifying its class layout or loader behavior.\n\n## Documentation placement\n\n- User-facing and contributor documentation belongs in `docs/`; keep [docs/README.md](docs/README.md) current when adding a guide.\n- Plans and session notes belong in `internal/plans/` (or `internal/superpowers/plans/`).\n- Design/requirement specs belong in `internal/specs/` (or `internal/superpowers/specs/`); libretto/muse files belong in `internal/libretti/`.\n- Never create or write to a singular `doc/` directory, or add plans, agent notes, or internal material below `docs/`.\n\n## Reference map\n\n- [Contribution workflow](CONTRIBUTING.md)\n- [Instrumentation backend selection](docs/architecture/InstrumentationBackends.md)\n- [v2 wire protocol](docs/architecture/Version2ProtocolArchitecture.md)\n- [Extension development](docs/BTraceExtensionDevelopmentGuide.md) and [interface rules](docs/ExtensionInterfaceRules.md)\n- [Troubleshooting](docs/Troubleshooting.md)\n"},"items":[{"name":"CLAUDE.md","path":"CLAUDE.md","title":"CLAUDE.md","content":"# Claude Code Guide\n\nFollow the repository-wide rules in [AGENTS.md](AGENTS.md). This file intentionally contains only Claude-specific orientation; `AGENTS.md` is the canonical operational contract.\n\n## Common commands\n\nUse a workspace-local Gradle cache when appropriate, and redirect Gradle output to a log before filtering and reading it (see [AGENTS.md](AGENTS.md#build-and-verification)).\n\n```bash\n# Distribution and all unit tests\nGRADLE_USER_HOME=$(pwd)/.gradle-user ./gradlew :btrace-dist:build\n\n# Module, test class, or formatting check\nGRADLE_USER_HOME=$(pwd)/.gradle-user ./gradlew :btrace-agent:test\nGRADLE_USER_HOME=$(pwd)/.gradle-user ./gradlew :btrace-agent:test --tests '*InstrStackTest'\nGRADLE_USER_HOME=$(pwd)/.gradle-user ./gradlew spotlessCheck\n\n# Integration tests: build the distribution first\nGRADLE_USER_HOME=$(pwd)/.gradle-user ./gradlew -Pintegration :integration-tests:test\n\n# Intentional instrumentation-bytecode changes only\nGRADLE_USER_HOME=$(pwd)/.gradle-user ./gradlew test -PupdateTestData\n```\n\n## Where to look\n\n- Script compiler and verifier: `btrace-compiler`\n- Agent lifecycle and bytecode weaving: `btrace-agent` (instrumentation engine lives in its `io.btrace.instr` package)\n- Script API, runtime, and protocol: `btrace-core`, `btrace-runtime`\n- CLI: `btrace-client`; packaging: `btrace-dist`\n- Golden instrumentation data: `btrace-agent/src/test/resources/instrumentorTestData/`\n\n## Detailed references\n\n- [Documentation index](docs/README.md)\n- [Masked JAR architecture](docs/architecture/MaskedJarArchitecture.md) — required reading for distribution/class-loading changes\n- [Instrumentation backends](docs/architecture/InstrumentationBackends.md)\n- [Protocol architecture](docs/architecture/Version2ProtocolArchitecture.md)\n- [Extension development](docs/BTraceExtensionDevelopmentGuide.md)\n- [Troubleshooting](docs/Troubleshooting.md)\n","category":"root","tokens":470},{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# Repository Guide for Coding Agents\n\n## Start here\n\nBTrace is a Java tracing tool: the client compiles and sends a script, the agent instruments the target JVM, and the runtime emits results. The root project is a multi-module Gradle build.\n\n- `btrace-agent` — attachable agent, script lifecycle, and bytecode instrumentation/weaving\n- `btrace-compiler` — script verification and compilation\n- `btrace-runtime` / `btrace-core` — script APIs, runtime support, and protocol\n- `btrace-client` — CLI and attachment client\n- `btrace-dist` — distribution assembly; `integration-tests` — end-to-end tests\n- `btrace-extensions/*` — extension API and implementations\n\nFor the developer command reference and code-navigation pointers, see [CLAUDE.md](CLAUDE.md). For user and contributor documentation, start at [docs/README.md](docs/README.md).\n\n## Non-negotiable rules\n\n- Do not commit unless the changes are fully tested or the user explicitly requests a commit.\n- Preserve unrelated working-tree changes.\n- In Java code, import types and use simple names; do not introduce fully qualified type names in source.\n- Main code targets Java 8 and uses the Java 11 toolchain. Follow Spotless/Google Java Format.\n- Unit tests live in `src/test/java` and use `*Test`; integration tests live in `integration-tests/src/test/java`.\n- Changes to user-visible behavior that crosses modules or process boundaries must include end-to-end functional coverage in `integration-tests`; unit and component tests are required where useful but are not a substitute for exercising the real client, agent, target JVM, and protocol interaction.\n- Confirm that a new test or build gate **fails when it should**, not only that it passes. Run it against the unfixed code, or against input it must reject, and check the failure is the expected one. A check that cannot fail reports success regardless of what the code does, and reads as coverage while providing none. Where a revert is used to produce the failure, revert only the code under test: reverting too much fails for an unrelated reason and proves nothing about the behavior being asserted.\n\n## Build and verification\n\nRun Gradle with a workspace-local cache in restricted environments:\n\n```bash\nGRADLE_USER_HOME=$(pwd)/.gradle-user ./gradlew :module:test\n```\n\nDo not consume Gradle output directly. Redirect it to a file, filter it to relevant lines, then read that file. Use `spotlessCheck` for validation and `spotlessApply` only when formatting changes are intended. Build `:btrace-dist:build` before integration tests.\n\nIf a restricted network environment causes address-selection failures, add:\n\n```bash\nJAVA_TOOL_OPTIONS=\"-Djava.net.preferIPv4Stack=true -Djava.net.preferIPv6Addresses=false\"\n```\n\n## Distribution changes\n\n`btrace.jar` is a masked single-JAR distribution. Classes must be assigned to bootstrap, agent, client, or shared sections deliberately. Any masked-JAR structure change requires:\n\n```bash\n./gradlew clean :btrace-dist:btraceJar\n```\n\nRead [Masked JAR Architecture](docs/architecture/MaskedJarArchitecture.md) before modifying its class layout or loader behavior.\n\n## Documentation placement\n\n- User-facing and contributor documentation belongs in `docs/`; keep [docs/README.md](docs/README.md) current when adding a guide.\n- Plans and session notes belong in `internal/plans/` (or `internal/superpowers/plans/`).\n- Design/requirement specs belong in `internal/specs/` (or `internal/superpowers/specs/`); libretto/muse files belong in `internal/libretti/`.\n- Never create or write to a singular `doc/` directory, or add plans, agent notes, or internal material below `docs/`.\n\n## Reference map\n\n- [Contribution workflow](CONTRIBUTING.md)\n- [Instrumentation backend selection](docs/architecture/InstrumentationBackends.md)\n- [v2 wire protocol](docs/architecture/Version2ProtocolArchitecture.md)\n- [Extension development](docs/BTraceExtensionDevelopmentGuide.md) and [interface rules](docs/ExtensionInterfaceRules.md)\n- [Troubleshooting](docs/Troubleshooting.md)\n","category":"root","tokens":1004}]}