feat: add repository profiles to issue resolver - #271
Conversation
Parse caller-fetched ISSUE_RESOLVER.md content into provenance-labelled, context-only profile data while preserving the v0.2 workflow outputs. Document the profile contract, trust boundary, and Skillware dogfood profile, with regression coverage for the frozen v0.2 contract. Fixes ARPAHLS#145
6a2822f to
02e56d7
Compare
|
@TheDarkniteFalls, solid v0.3 slice and thank you for the frozen v0.2 SHA256 regression harness. This matches the narrowed direction from #145 (parse + provenance-labelled context, no merge/firewall yet). Before merge, please add:
Explicitly OK deferred for now: Once (1) and (2) land, I’m good to merge and close #145 as the narrow v0.3 ship. We can open a follow-up for smart section→stage merge if you want to pick that later. |
|
Hey @TheDarkniteFalls LGTM <3 Thanks for the quick turnaround and the frozen regression harness. Merging this. |
Description
Adds the deliberately narrow v0.3 repository-profile path requested in #145.
load_repository_profileparses caller-fetchedISSUE_RESOLVER.mdMarkdown into generic ordered sections, labels its provenance, and exposes it as repository context that cannot override the constitution or grant authority.The existing v0.2 workflow payloads remain unchanged when no profile is supplied. This PR also adds the profile standard, a Skillware dogfood profile, catalog and card updates, and durable frozen-v0.2 regression coverage.
Per the latest maintainer direction, smart section-to-stage mapping, checklist merging, compression, YAML, loader changes, network calls inside
execute(), profile generation, and a prompt-injection firewall remain out of scope.Acceptance mapping
skill.py,manifest.yaml, andinstructions.mdtest_skill.pymanifest.yaml,instructions.md,docs/contributing/issue_resolver_profile.md, and the rootISSUE_RESOLVER.mddocs/skills/issue_resolver.md,docs/skills/README.md,card.json, and its fixtureCHANGELOG.mdVerification
python -m black --check .— 136 files unchangedflake8 . --count --select=E9,F63,F7,F82 --show-source --statistics— 0 findingsflake8 . --count --statistics— 0 findingspytest skills/— 155 passedpytest tests/— 175 passedpython scripts/sync_extras.py --check— passedgit diff --check— passedThe nested wheel-build test used existing local build tooling because the execution environment could not reach PyPI. The repository test was not modified or skipped and passed; CI can repeat it with normal isolated dependency installation.
Type of Change
Checklist (all PRs)
pytest skills/andpytest tests/passCHANGELOG.mdupdatedexamples/README.mdupdated if runnable scripts changed (not applicable: no runnable scripts changed)New or updated skill
Bundle and metadata
Logic, cognition, tests
Skill.execute()returns a JSON-serializable dictionaryDocumentation and catalog
Constitution and safety (skills only)
The repository profile is explicitly labelled as caller-fetched repository context. Its content cannot override the Skillware constitution, modify workflow invariants, or grant the agent authority.
This narrow version deliberately does not implement a prompt-injection firewall. Repository administrators are responsible for profile quality and for ensuring profile content is clean, sound, and conforms to the documented standard.
execute()performs no network access. FetchingISSUE_RESOLVER.mdremains the caller's responsibility, and repository-native instructions such asAGENTS.mdremain independently applicable.Related Issues
Fixes #145