Repository navigation
a Feature has no deprecated_at - #44
Merged
Merged
Conversation
Narrows the canon round of #34 (P35-LD7c). A Feature's state stays derived from its Functionalities; a Feature-level date had no single source - the canon gave no rule for choosing among its Functionalities' dates - and each date already lives on the Functionality that was deprecated. - glossary (Feature): a Feature has no deprecated_at; deprecation_reason and superseded_by stay authored and drive no state - principles: exception E1 covers the Feature's state only - header types: the deprecated_at: common-mistake row follows the rule - examples corpus: README and the FEAT-001 / FEAT-002 comments follow it - examples_check.py: the ## Deprecated At / deprecated_at: hints say a Feature has no deprecation date; test assertion and comments updated
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
A Feature has no
deprecated_at. Its state stays derived from its Functionalities, and that is the onlyvalue the pipeline sets on a Feature. This narrows the rule merged in #34 (
P35-LD7c); the owner decisionis
DEC-47(2026-10-01).Why: a Feature-level date has no single source. The canon gave no rule for choosing among its
Functionalities' dates, so a pipeline would have to invent one. Each date already lives on the
Functionality that was deprecated, and the Feature's
deprecatedstate says the rest.Accepted consequence: a deprecated Feature renders its
DEPRECATEDbadge and itsdeprecation_reason,with no date.
Changes:
docs/guides/living-doc-glossary.md— Feature: nodeprecated_at; a Feature issue body carries no## Deprecated Atand a PageObject header nodeprecated_at:.deprecation_reasonandsuperseded_bystay authored and drive no state. The "where status and deprecation metadata are authored" note follows.
docs/introduction/principles.md— exceptionE1covers the Feature's state only.docs/guides/living-doc-header-types.md— thedeprecated_at:common-mistake row follows the rule.docs/examples/README.md,gh-issues/feat-001-login-page.md,gh-issues/feat-002-breached-password-check.md— corpus wording follows the rule. Comments only; no example's content or validation changes.
tools/examples_check.py— the## Deprecated Atanddeprecated_at:hints say a Feature has nodeprecation date and keep the "keep
deprecation_reason/superseded_by" advice; the test assertionand comments match.
Verification:
python3 -m pytest tools/— 61 passed;python3 tools/examples_check.py— corpus OK.Release Notes
deprecated_at. A Feature issue body carries no## Deprecated Atand a PageObjectheader no
deprecated_at:;deprecation_reasonandsuperseded_bystay authored on a Feature.E1covers a Feature's state only.Framework
E1back to the state; adds nonedocs/introduction/principles.mdin this PR