Skip to content

Add breaking-changes knowledge domain and review leaf skill#44

Open
JesperSchulz wants to merge 1 commit into
mainfrom
jesperschulz-breaking-changes-domain
Open

Add breaking-changes knowledge domain and review leaf skill#44
JesperSchulz wants to merge 1 commit into
mainfrom
jesperschulz-breaking-changes-domain

Conversation

@JesperSchulz

Copy link
Copy Markdown
Collaborator

Summary

Seeds a new breaking-changes knowledge domain (AL API stability) for BCQuality, mirroring the structure of the merged error-handling domain: each article is a <slug>.md with sibling <slug>.good.al / <slug>.bad.al samples, and a new leaf review skill is wired into al-code-review.

The six articles (microsoft/knowledge/breaking-changes/)

  1. do-not-change-published-procedure-signatures — Once a procedure is publicly reachable, changing its signature (add/remove/reorder params, change types or return type, toggle var) breaks dependents. Add a new procedure/overload instead; naming a previously unnamed return value is the one safe in-place change.
  2. deprecate-public-members-with-the-obsolete-lifecycle — Never delete a published procedure outright; mark it [Obsolete('reason','tag')], keep it through a deprecation window, then remove it.
  3. obsolete-table-fields-instead-of-deleting-them — Deleting/renaming a published table field is breaking and risks data loss; use ObsoleteState = PendingRemoved with reason + tag.
  4. do-not-modify-code-already-marked-obsolete — Members under [Obsolete] or #if not CLEANxx are scheduled for removal; build on the replacement, don't extend the obsolete member.
  5. do-not-expose-sensitive-data-through-public-api — Don't widen access to expose tokens, credentials, or SecretText; keep secrets internal/local and expose only non-sensitive business data.
  6. choose-access-modifiers-deliberately — Default to internal/local; make a member public only when you intend to support it as a stable contract.

New leaf skill + wiring

  • Adds microsoft/skills/review/al-breaking-changes-review.md (5 H2 sections: Source, Relevance, Worklist, Action, Output; outputs: findings-report; source domain breaking-changes).
  • Wires the leaf into al-code-review.md (frontmatter sub-skills, ## Source bullet, line-6 description) and bumps the README leaf-skill count seven→eight, appending breaking-changes to the domain list.

Origin / IP

Content is written from scratch as general AL best practice and verified against Microsoft Learn for version-sensitive facts (the [Obsolete] attribute applies to procedures while ObsoleteState applies to objects/fields; SecretText is v23+, so it is referenced only in prose to keep all samples valid for [all]). All articles are bc-version: [all]. Object IDs 50300–50329, unique names and IDs across the batch.

Validation

  • python .github/scripts/validate_frontmatter.py0 errors, 0 warnings
  • Test-KnowledgeIndex.ps1PASSED (166 articles, deterministic, full coverage)

Expected conflict

The parallel interfaces (#42) and events (#43) PRs edit the same al-code-review.md sub-skills list and README count lines, so a trivial wiring conflict is expected when they land. Resolution: keep ALL leaves, and set the README count = base count + number of new domains merged.

Part of #34.

Seed a new breaking-changes (AL API stability) knowledge domain with six
articles plus good/bad AL samples, a new al-breaking-changes-review leaf
skill, and minimal wiring into al-code-review and the README.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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