Skip to content

Add ticket-writing and work-planning skills (PROF-16542) - #960

Open
rkennke wants to merge 2 commits into
rkennke/PROF-16542-writing-skillsfrom
rkennke/PROF-16542-planning-skills
Open

rkennke wants to merge 2 commits into
rkennke/PROF-16542-writing-skillsfrom
rkennke/PROF-16542-planning-skills

Conversation

@rkennke

@rkennke rkennke commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

What does this PR do?:

Adds two agent skills for the ticket and planning conventions, which the repo did not record anywhere until now:

  • .agents/skills/ticket-writing/:
    • ticket shape and fields: parent Task and Sub-task, component, explicit assignee;
    • description sections;
    • sign-off and evidence comments, with links instead of bare names;
    • the status that each phase of the work maps to.
  • .agents/skills/work-planning/:
    • design: decisions with a recommendation, environments, critical areas, rollout and recovery;
    • acceptance criteria tagged local, test-drive or production-check;
    • a Build plan that maps each criterion to a check.

AGENTS.md Work Tracking points to both skills. doc/WorkTracking.md points to them and allows the design to live in the ticket description.

Stacked on #959, which adds the check-skills.py gate that these skills pass.

Motivation:

These conventions lived only in the agent-configuration proposal and in how PROF-16469 and PROF-16542 were run. A fresh session did not know them. On main, a headless session asked to draft a sub-task left it "Unassigned", which makes Jira assign the component default, another engineer. Asked about a merged PR with production checks pending, it answered "In Progress". Step 2 of PROF-16466; design on PROF-16542.

Additional Notes:

  • Reviewer acknowledgment needed: these status rules are new team conventions, not a restatement of existing text:
    • a merged PR with production checks pending stays In Review;
    • the ticket stays In Progress while a planned PR is still to be written;
    • waiting for the engineer's sign-off is not Blocked;
    • a parent Task follows its sub-tasks.
  • doc/WorkTracking.md used to place the design in a draft PR. It now allows the ticket description as the one declared source of truth, matching how these tickets are run.
  • Not in this PR: Jira automations for the status moves (PROF-16543).
  • Pre-PR review: /code-review (medium) on the first commit found 10 issues: disagreements with doc/WorkTracking.md, unclear status rules, and duplicated rules. The second commit fixes all 10. /code-review (low) on the fix found nothing. No Sphinx run, because the PR changes only Markdown.

How to test the change?:

Check State
python3 utils/check-skills.py passed, 5 skills
bash utils/tests/test_quality_check_scripts.sh passed, 231 groups
Claude Code 2.1.319 and Pi 1.2.0, headless, read-only tools and no MCP servers, prompts that do not name a skill, on 0355d2d passed: the ticket, status and Build-plan prompts load ticket-writing and work-planning in both harnesses
Same prompts on main vs. this branch passed: drafts set library-java and an explicit assignee (on main: unassigned, placeholder component); the status answer is In Review (on main: In Progress); Build plans are a criteria table of about 370–460 words (on main: 892 and 1375 words)

For Datadog employees:

  • If this PR touches code that signs or publishes builds or packages, or handles
    credentials of any kind, I've requested a security review (run the dd:platform-security-review
    skill, or file a request via the PSEC review form).
    bewaire also runs automatically on every PR.
  • This PR doesn't touch any of that.
  • JIRA: PROF-16542

🤖 Generated with Claude Code

rkennke and others added 2 commits November 9, 2026 17:42
The ticket and planning conventions were recorded nowhere in the repo:
only in the agent-configuration proposal and in how the PROF-16469 and
PROF-16542 tickets were run. Two skills now carry them and load at the
moment they apply.

- ticket-writing: parent Task and Sub-task shape, component, explicit
  assignee (Jira otherwise assigns the component default), description
  sections, sign-off and evidence comments, links instead of bare names,
  and the status each phase maps to. A merged PR with production checks
  pending stays In Review.
- work-planning: effort proportional to size, decisions listed with a
  recommendation, the environments a design must name, acceptance
  criteria tagged local, test-drive or production-check, and a Build plan
  that maps criteria to checks without restating the design.

AGENTS.md Work Tracking points to both skills.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…es (PROF-16542)

- work-planning names the ticket description as the one declared source
  of truth, takes the critical areas from WorkTracking.md instead of a
  shorter copy, and asks for a rollout and recovery plan.
- ticket-writing evidence names the configuration that produced it, and
  for production checks the deployed revision, environment and window.
- Status: the ticket stays In Progress while a planned PR is still to be
  written; waiting for the engineer's sign-off is not Blocked; a parent
  Task follows its sub-tasks.
- Drop the rules AGENTS.md already keeps loaded (criterion sign-off,
  evidence states).
- WorkTracking.md allows the design in the ticket description and points
  to both skills; the AGENTS.md pointer covers GitHub issues and links
  the skill files.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@dd-octo-sts

dd-octo-sts Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

Scan-Build Report

User:runner@runnervmwuk1x
Working Directory:/home/runner/work/java-profiler/java-profiler/ddprof-lib/src/test/make
Command Line:make -j4 all
Clang Version:Ubuntu clang version 21.1.8 (6ubuntu1)
Date:Mon Nov 9 18:11:35 2026

Bug Summary

Bug TypeQuantityDisplay?
All Bugs2
Logic error
Dereference of null pointer1
Unused code
Dead initialization1

Filter Results by File

Reports

Bug Group Bug Type ▾ File Function/Method Line Path Length
Unused codeDead initializationreferenceChains.cppapplyOomRamp4971
Logic errorDereference of null pointerperfEvents_linux.cppunregisterThread72026

@datadog-prod-us1-3

datadog-prod-us1-3 Bot commented Nov 9, 2026 •

Copy link
Copy Markdown

Pipelines

⚠️ Warnings

Your PR has warnings. Please review the issues below.

🚦 12 Pipeline jobs failed

DDCI - DataDog/java-profiler | renaissance-benchmarks: [akka-uct, 25] — 🔄 Retry may pass, looks flaky

View more details · View in DDCI

DDCI - DataDog/java-profiler | renaissance-benchmarks: [finagle-chirper, 21] — 🔄 Retry may pass, looks flaky

View more details · View in DDCI

DDCI - DataDog/java-profiler | renaissance-benchmarks: [fj-kmeans, 25] — 🔄 Retry may pass, looks flaky

View more details · View in DDCI

View all 12 failed jobs.

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 0355d2d | Docs | View more details | Give us feedback!

@dd-octo-sts

dd-octo-sts Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

CI Test Results

Run: #42668800366 | Commit: 64f1f95 | Duration: 39m 13s (longest job)

✅ All 32 test jobs passed

Status Overview

JDK glibc-aarch64/debug glibc-amd64/debug musl-aarch64/debug musl-amd64/debug
8 - ✅ - -
8-ibm - ✅ - -
8-j9 ✅ ✅ - -
8-librca - - ✅ ✅
8-orcl - ✅ - -
11 - ✅ - -
11-j9 ✅ ✅ - -
11-librca - - ✅ ✅
17 ✅ ✅ - -
17-graal ✅ ✅ - -
17-j9 ✅ ✅ - -
17-librca - - ✅ ✅
21 ✅ ✅ - -
21-graal ✅ ✅ - -
21-librca - - ✅ ✅
25 ✅ ✅ - -
25-graal ✅ ✅ - -
25-librca - - ✅ ✅

Legend: ✅ passed | ❌ failed | ⚪ skipped | 🚫 cancelled

Summary: Total: 32 | Passed: 32 | Failed: 0


Updated: 2026-11-09 18:55:14 UTC

@rkennke
rkennke marked this pull request as ready for review November 9, 2026 20:44
@rkennke
rkennke requested a review from a team as a code owner November 9, 2026 20:44
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-09T20:50:38.087320Z 0355d2d Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@datadog-prod-us1-3 datadog-prod-us1-3 Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Bits Code Review: FAIL

The new mandatory skill in SKILL.md requires both the design and Build-plan artifacts to live in the ticket description, directly conflicting with doc/WorkTracking.md, which explicitly permits those artifacts to reside in a draft PR or a linked plan.md. The skill's amendment instruction also risks leaving the accepted plan stale or creating duplicate copies when the canonical source is outside the ticket.

Open Bits AI session

🤖 Bits Code Review · Commit 0355d2d

Comment on lines +9 to +11
to write the two planning artifacts. Both live in the ticket description, which is
their one declared source of truth (see the `ticket-writing` skill), and the engineer
accepts each before the next phase starts.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Preserve supported locations for planning artifacts

When a task declares a draft PR as its design source or a versioned plan.md as its Build-plan source, this mandatory skill instead requires both artifacts in the ticket description. WorkTracking.md explicitly permits those alternative locations. Agents therefore receive conflicting instructions about where to maintain accepted artifacts. Preserve each artifact's declared source of truth.

Suggested change
to write the two planning artifacts. Both live in the ticket description, which is
their one declared source of truth (see the `ticket-writing` skill), and the engineer
accepts each before the next phase starts.
to write the two planning artifacts. Keep each in its one declared source of truth:
the design in the ticket description or a draft PR; the Build plan in a versioned
`plan.md` or ticket-linked equivalent. The engineer accepts each before the next
phase starts.

React: 👍 useful · 👎 wrong · 😕 unclear · 👀 right, but not acting on it

What each reaction means
  • 👍 Useful: correct, and you're fixing it or will.
  • 👎 Wrong: the finding is incorrect, for example the bug can't happen or the code was misread.
  • 😕 Unclear: you can't tell what it means or why it matters.
  • 👀 Right, not acting: correct, but intended, out of scope for this PR, a known risk, or too minor.

🤖 Bits Code Review · Open Bits AI session

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0355d2d6db

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +51 to +52
- **After the candidate changes,** re-run each check, or state why the change cannot
affect it.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Require rerunning checks after candidate changes

When the candidate commit changes after evidence was collected, this exception permits carrying the old result forward based only on a claim that the change cannot affect it. That evidence no longer identifies the exact candidate being approved, directly contradicting the repository invariant that any candidate change invalidates prior evidence; require the check to be rerun instead.

AGENTS.md reference: AGENTS.md:L491-L494

Useful? React with 👍 / 👎.

Comment on lines +9 to +10
to write the two planning artifacts. Both live in the ticket description, which is
their one declared source of truth (see the `ticket-writing` skill), and the engineer

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Use one consistent location for planning artifacts

When an engineer chooses the draft-PR design location explicitly allowed by doc/WorkTracking.md, this mandatory skill instead says both planning artifacts must live in the ticket description. Because sessions are required to read both sources, they receive incompatible source-of-truth instructions and may duplicate or relocate the design; either preserve the documented draft-PR option here or remove it from WorkTracking.md.

AGENTS.md reference: AGENTS.md:L477-L483

Useful? React with 👍 / 👎.

This branch has not been deployed

No deployments
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.

1 participant