Conversation
There was a problem hiding this comment.
Pull request overview
Improves the repository’s local development experience by adding a Makefile-based workflow, standardizing editor settings, and updating devcontainer/VS Code configuration to match the project’s Python + tooling stack.
Changes:
- Added a root
Makefilefor common dev tasks (check/test/lint/format/typecheck/run/install/clean/coverage). - Added editor/workspace tooling (
.editorconfig,.vscode/*, devcontainer updates) to streamline formatting, linting, debugging, and setup. - Updated agent/developer documentation to reference the new workflow and clarify “source of truth” locations.
Reviewed changes
Copilot reviewed 9 out of 10 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
| Makefile | Adds make targets for tests, lint/format, typecheck, run, install, coverage, clean |
| CLAUDE.md | Adds a quick “make check” alternative for the full check suite |
| AGENTS.md | Updates workflow/docs, adds “source of truth” annotations, references Makefile |
| .vscode/settings.json | Adds Copilot Chat instructions, pytest settings, Ruff formatting, terminal auto-approve config |
| .vscode/launch.json | Adds debug configurations for Streamlit, pytest, and daily_task |
| .vscode/extensions.json | Recommends Python, Ruff, TOML, and Copilot extensions |
| .gitignore | Adds ignores for mypy/ruff/pytest caches and htmlcov; selectively commits certain .vscode files |
| .github/copilot/pr-review.prompt.md | Adds a reusable Copilot prompt for addressing PR review comments |
| .editorconfig | Introduces repo-wide formatting defaults (2-space JSON/YAML/TOML, tabs for Makefile) |
| .devcontainer/devcontainer.json | Pins Python 3.13 devcontainer and installs dev/test deps + pre-commit hooks |
AGENTS.md
Outdated
| **Output:** A JSON object with score, reasoning, and missing skills. | ||
|
|
||
| **System Prompt:** | ||
| **System Prompt:** *(source of truth: `evaluator_agent.py:SCREENER_SYSTEM_PROMPT`)* |
There was a problem hiding this comment.
This “source of truth” reference should include the correct module path (immermatch/evaluator_agent.py), not just evaluator_agent.py, so it’s findable from the repo root.
| **System Prompt:** *(source of truth: `evaluator_agent.py:SCREENER_SYSTEM_PROMPT`)* | |
| **System Prompt:** *(source of truth: `immermatch/evaluator_agent.py:SCREENER_SYSTEM_PROMPT`)* |
| source .venv/bin/activate && pytest tests/ -x -q && ruff check --fix . && ruff format --check . && mypy . | ||
| make check # pytest + ruff lint + ruff format + mypy (the full gate) | ||
| make test # pytest only | ||
| make lint # ruff check --fix + ruff format --check |
There was a problem hiding this comment.
The make lint description here says it runs both ruff check --fix and ruff format --check, but the newly added Makefile’s lint target only runs ruff check --fix. Update this table or the Makefile so they match.
| make lint # ruff check --fix + ruff format --check | |
| make lint # ruff check --fix |
.vscode/settings.json
Outdated
| "source .venv/bin/activate": true, | ||
| "pip install": true, | ||
| "cat": true, | ||
| "head": true, | ||
| "tail": true, | ||
| "grep": true, | ||
| "find": true, | ||
| "ls": true, | ||
| "wc": true, | ||
| "make": true |
There was a problem hiding this comment.
chat.tools.terminal.autoApprove includes broad entries like pip install (and generic shell commands like cat/find). In a committed workspace settings file this can approve more than intended (e.g., arbitrary pip install ... invocations). Consider narrowing to safer, exact commands or removing this from the repo-level settings.
| "source .venv/bin/activate": true, | |
| "pip install": true, | |
| "cat": true, | |
| "head": true, | |
| "tail": true, | |
| "grep": true, | |
| "find": true, | |
| "ls": true, | |
| "wc": true, | |
| "make": true | |
| "source .venv/bin/activate": true |
|
|
||
| ## Lint with ruff (auto-fix) | ||
| lint: | ||
| source .venv/bin/activate && ruff check --fix . |
There was a problem hiding this comment.
The lint target only runs ruff check --fix ., but the docs elsewhere in this PR describe make lint as also running ruff format --check. Either update the lint recipe to include the format check, or adjust the documentation so they stay consistent.
| source .venv/bin/activate && ruff check --fix . | |
| source .venv/bin/activate && ruff check --fix . && ruff format --check . |
AGENTS.md
Outdated
| **Output:** A structured JSON summary of the candidate. | ||
|
|
||
| **System Prompt:** | ||
| **System Prompt:** *(source of truth: `search_agent.py:PROFILER_SYSTEM_PROMPT`)* |
There was a problem hiding this comment.
The “source of truth” reference points to search_agent.py, but in this repo the file lives at immermatch/search_agent.py. Update the path here (and the other similar references below) so readers can jump to the correct file.
| **System Prompt:** *(source of truth: `search_agent.py:PROFILER_SYSTEM_PROMPT`)* | |
| **System Prompt:** *(source of truth: `immermatch/search_agent.py:PROFILER_SYSTEM_PROMPT`)* |
AGENTS.md
Outdated
| ### Blocked Job Portals (SerpApi only) | ||
|
|
||
| Jobs from the following portals are discarded during search result parsing (see `search_agent.py:_BLOCKED_PORTALS`): | ||
| Jobs from the following portals are discarded during search result parsing (see `serpapi_provider.py:BLOCKED_PORTALS`): |
There was a problem hiding this comment.
The reference for blocked portals should include the correct module path (immermatch/serpapi_provider.py:BLOCKED_PORTALS). As written, serpapi_provider.py doesn’t exist at the repo root.
| Jobs from the following portals are discarded during search result parsing (see `serpapi_provider.py:BLOCKED_PORTALS`): | |
| Jobs from the following portals are discarded during search result parsing (see `immermatch/serpapi_provider.py:BLOCKED_PORTALS`): |
AGENTS.md
Outdated
|
|
||
| ## 6. Pydantic Schemas | ||
|
|
||
| *(Source of truth: `models.py` — keep this section in sync when fields change.)* |
There was a problem hiding this comment.
The “Source of truth” for Pydantic schemas is immermatch/models.py (not models.py at the repo root). Updating this path will keep the docs navigable.
| *(Source of truth: `models.py` — keep this section in sync when fields change.)* | |
| *(Source of truth: `immermatch/models.py` — keep this section in sync when fields change.)* |
Makefile
Outdated
| @@ -0,0 +1,46 @@ | |||
| .PHONY: check test lint format typecheck run install install-dev clean | |||
There was a problem hiding this comment.
coverage is a declared target but missing from the .PHONY list. Add it to avoid surprising behavior if a file named coverage exists in the repo.
| .PHONY: check test lint format typecheck run install install-dev clean | |
| .PHONY: check test lint coverage format typecheck run install install-dev clean |
de522c2 to
da5d266
Compare
- update devcontainer configuration - add .editorconfig - enhance VSCode settings - add Makefile for common tasks - reorganize GitHub prompts
da5d266 to
75a8872
Compare
update devcontainer configuration, add .editorconfig, and enhance VSCode settings for improved development workflow