Skip to content

task: agent ready prep - #280

Open
jharlow-intel wants to merge 3 commits into
mainfrom
task/agent-ready
Open

jharlow-intel wants to merge 3 commits into
mainfrom
task/agent-ready

Conversation

@jharlow-intel

@jharlow-intel jharlow-intel commented Oct 7, 2026 •

Copy link
Copy Markdown
Collaborator

Very similar to IntelPython/mkl_fft#379: adds contributor and coding-agent guidance (CONTRIBUTING.md, AGENTS.md), PR and issue templates, and a README pointer, checked against this repo's build and CI. It also corrects the existing AGENTS.md files.

Comment thread CONTRIBUTING.md
Comment thread CONTRIBUTING.md Outdated
Comment thread conda-recipe-cf/AGENTS.md Outdated
Comment thread conda-recipe-cf/AGENTS.md Outdated
Comment thread AGENTS.md
Comment thread mkl_umath/src/AGENTS.md Outdated
Comment thread AGENTS.md Outdated
Comment thread CONTRIBUTING.md Outdated
Comment thread .github/AGENTS.md
- CONTRIBUTING.md: use --override-channels, install pre-commit with the
  pylint and shellcheck its system hooks need, note Windows support and
  the meson.build GCC/MSVC branches, and match the CHANGELOG link format
- AGENTS.md: restore supported platforms, add the meson.build guardrail,
  and note that checkout tests need the editable install
- conda-recipe-cf/AGENTS.md: gnu_thread is Linux-only, llvm-openmp has no
  run pin, and each recipe has its own conda_build_config.yaml
- mkl_umath/src/AGENTS.md: scope the patch lock claim and note per-thread
  patch/restore balance
- .github/AGENTS.md: list the templates and repo config files

@napetrov napetrov left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I checked the docs at 3f8573f against the tree and by running them.

  • I ran the CONTRIBUTING.md setup verbatim in a clean condaforge/miniforge3 container. Creating the env, the editable install, pytest mkl_umath/tests (392 passed, 1 skipped) and pre-commit run --all-files all pass. A control build without -Dmkl_threading=gnu_thread fails at import with libmkl_intel_thread.so.3: undefined symbol: __atomic_compare_exchange, so the gnu_thread note is right.
  • I also ran a static check of the paths, commands and identifiers the guidance names. At head it finds no broken references. At base it found the stale mkl_random mentions and the src/__umath_generated.c path, which this PR fixes.
  • I checked loading with Claude Code 2.1.296. The root AGENTS.md loads from every directory, and each nested one loads once the agent works in its subtree. .github/copilot-instructions.md is never loaded; more on that inline.

A few remaining points are inline. None of them block the PR.

Comment thread CONTRIBUTING.md
On Linux:

```sh
conda create -n mkl_umath-dev --override-channels -c conda-forge python pip \

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

python is unpinned here. conda-forge already has Python 3.15.0, while pyproject.toml has requires-python = ">=3.10,<3.15". Today the solve picks 3.14.8 (checked), likely because not every dependency has a 3.15 build yet. Once they all do, this line creates a 3.15 env and the editable install fails on requires-python. I suggest "python<3.15", or a specific python=3.14.

Comment thread conda-recipe/AGENTS.md
- Treat recipe files as canonical for packaging intent and dependency pins.
- Keep recipe changes in step with `.github/workflows/conda-package.yml`, which
builds this recipe and runs the full test suite against the result.
- The package test in `meta.yaml` runs only `test_basic.py`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's worth saying that CI never runs this package test. Both conda workflows call conda build --no-test (conda-package.yml:286, conda-package-cf.yml:275) and run pytest --pyargs mkl_umath in a separate job. Without that note, an agent can assume CI covers a change to the meta.yaml test.

Comment thread AGENTS.md
## Development guardrails
- Preserve NumPy ufunc behavior; patched loops stand in for NumPy's own.
- Edit the `*.src` templates and `generate_umath.py`, not generated C.
- Keep the floating-point precision flags in `meson.build`; Intel-only flags stay

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/fp:precise is also set for Windows in both recipes' conda_build_config.yaml (line 20, # [win]), not only in meson.build. Could this line, and CONTRIBUTING.md:47, say "in meson.build and the recipes' conda_build_config.yaml"? That way an agent editing one place knows there is a second.

## Contribution expectations
- Keep changes atomic and single-purpose.
- Preserve runtime patching API (`use_in_numpy()`, `restore()`, `is_patched()`) unless explicitly requested.
- Preserve the runtime patching API (`patch_numpy_umath()`, `restore_numpy_umath()`,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This rule exists only in copilot-instructions.md. Claude Code never loads that file (checked with 2.1.296 from every subdirectory), and agents other than Copilot see it only if they follow the pointer at AGENTS.md:53. If the rule should apply to all agents, copying this line into the root AGENTS.md guardrails would cover them.

Also, use_in_numpy() and restore() are still exported in __all__ and exercised in test_patching.py. If they should stay until the deprecation removal, list them here too, or say that they may be removed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants