Repository navigation
Add guarded Android coding and PR dynamic workflow, Fixes AB#3800277 - #482
Shahzaib (shahzaibj) wants to merge 61 commits into
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…iew skills Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…n code-feature Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…redits cap Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…imits Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…tree Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…ications Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…tance criteria Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…n prompt mode Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…seudo-conflicts Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…e unavailable Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…cation Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…ktrees Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…skill Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…nd worktree snapshot guards Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…-observer workflow Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…tus blocks, and observer anti-loop Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…d GHE PR rules from E2E log Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…rge/changelog rules from past sessions Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
… in SKILL.md Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
… roles Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
… code-feature Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
… repo inference Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
… normalizeTask Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…ons volatile for resume Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…ktree sessions Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
… PR creation for Authenticator Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…pr-observer Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…DO PR snapshots Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…n observer.mjs Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
| tools: ['view', 'glob', 'grep', 'skill'] | ||
| --- | ||
|
|
||
| # Code Feature Evidence Worker |
There was a problem hiding this comment.
What function does this serve? Isn't this same as codebease-researcher?
There was a problem hiding this comment.
Good question — while code-evidence uses .github/skills/codebase-researcher/SKILL.md for its search discipline, it serves a different contract than the interactive codebase-researcher agent:
- Structured Intake & Spec Extraction (slimIntakeSchema / �videnceSchema): Unlike codebase-researcher (which returns freeform markdown prose for a human reader), code-evidence is the Stage 1 intake worker of code-feature: it turns a Design Doc, ADO PBI, or free-form prompt into a normalized �erdict (
eady / clarify /
eject), target repository, base branch, extracted requirements, verification commands, and plain-language clarification questions. - Programmatic Tool Lock (infer: false): In workflow.mjs, code-evidence is registered with infer: false and ools: ['view', 'glob', 'grep', 'skill'] so the dynamic workflow runtime enforces read-only access and structured JSON output during Stage 1.
That said, if you'd prefer we consolidate them or rename it, we can!
…rpts Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
| ## Review Rules & Boundaries | ||
|
|
||
| - You are strictly read-only: use `view`, `glob`, `grep`, and `skill` to inspect the target worktree. Never edit files, run fixers, commit, push, or post PR comments directly. | ||
| - Apply the 9-point fixed rubric (`approvedScopeAndRequirements`, `architectureAndApiCompatibility`, `correctnessAndEdgeCases`, `concurrencyAndThreadSafety`, `securityPrivacyAndLogging`, `performanceAndResourceBounds`, `telemetryAndObservability`, `unitTestsAndVerification`, `prReadinessAndTraceability`). |
There was a problem hiding this comment.
What is this rubric? Where defined?
There was a problem hiding this comment.
It is defined in .github/extensions/CodeFeature/workflow.mjs (�xport const rubric = Object.freeze([...]), lines 66–76), and enforced structurally when slimSchemas: false (via
eviewSchema + �alidateReview) and as the 9 review dimensions in slimReviewSchema mode.
In 9707c43, I updated code-reviewer.agent.md to explicitly cite .github/extensions/CodeFeature/workflow.mjs (�xport const rubric) and spell out what each of the 9 dimensions checks right here in the agent file so it's self-contained.
| - `common/.github/skills/code-review/SKILL.md` | ||
| - `broker/.github/skills/code-review/SKILL.md` |
There was a problem hiding this comment.
are these strictly read by our agent?
There was a problem hiding this comment.
Yes — in workflow.mjs,
esolveRoleSkillGuides('reviewer', task.targets) selects the exact list of files from SKILL_GUIDES.reviewer[repo] for the target repo (common, �roker, msal, �dal, or �uthenticator) and prepends to the code-reviewer prompt:
Read and apply these repository code-review guides: .`n
And because code-reviewer has ools: ['view', 'glob', 'grep', 'skill'], we verified in the E2E runs (7487e9e7 on �roker and 342b0e7d on �uthenticator) that the code-reviewer subagent calls �iew on those exact files at the start of its turn before reviewing the diff. Updated the section header in 9707c43 to note how
esolveRoleSkillGuides injects them per target repo.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…ee checkouts Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…reaper Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…-config edits Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…et only Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…ee mode Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
… snapshot Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…equired metadata Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…dle workers Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
… PBI Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…se subagent cap Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…without pausing Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…ile androidTest only) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…xtract PR ID safely Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Adds a standalone, repository-scoped Copilot Dynamic Workflow (
code-feature) under.github/extensions/CodeFeature/for Android coding and pull request creation, modeled after.github/extensions/DevDesignDoc(design-feature).Related to AB#3800277 and parent feature AB#3797944.
Approach
.github/extensions/CodeFeature/extension.mjswith workflow namecode-featureand role-scoped custom agents (code-evidence,code-builder, and read-onlycode-reviewer).AB#<id>work-item linkage; gather repository evidence with revisions and facts before coding.code-builderto produce the implementation, unit tests, requirement-to-file/test traceability, and PR metadata.code-revieweracross up to 3 fix iterations max (fix-1..3): run deterministic structural/diff/workspace checks and an independent 9-point rubric review on each round, returning structured findings tocode-builderuntil zero findings remain (or halting withNO-GOand restoring modified workspace files if 3 fix iterations are exhausted).Fixes AB#<id>, requirements traceability table, unit test plan, compatibility and rollout notes) only after all deterministic checks and independent review criteria pass.Checks
node --check .github/extensions/CodeFeature/extension.mjsandnode --check .github/extensions/CodeFeature/workflow.mjspassed..github/extensions/CodeFeature/workflow.test.mjspassed (plus all 15DevDesignDoctests).project:CodeFeaturestatusrunning) and zero-agent validation in the Copilot SDK runtime.