Skip to content

spec: Issue #33 - Comprehensive parent specification for unified branding agent#537

Merged
ashleyshaw merged 1 commit into
developfrom
ai/branding-agent-parent-spec
May 28, 2026
Merged

spec: Issue #33 - Comprehensive parent specification for unified branding agent#537
ashleyshaw merged 1 commit into
developfrom
ai/branding-agent-parent-spec

Conversation

@ashleyshaw
Copy link
Copy Markdown
Member

Overview

This PR introduces the comprehensive parent specification for Issue #33, which unblocks the branding agent implementation roadmap (#46, #49, #48).

What's Included

  • Document Category Taxonomy: Complete specification for all 16 document categories with requirements
  • Header/Footer Specifications: Detailed requirements per category with 5 footer variants each for 6 key categories
  • Badge Requirements: Types and usage guidelines
  • Schema/Config Model: Recommended YAML + JSON Schema approach with sample structures
  • Frontmatter Standards: Category inference and validation rules
  • Accessibility & Readability: WCAG AA compliance and low-noise design principles
  • Implementation Roadmap: 4-phase delivery plan with milestones
  • Acceptance Criteria: 16 criteria covering all aspects of the specification

Document

See .github/projects/active/ISSUE_33_BRANDING_AGENT_PARENT_SPEC.md for the full specification.

Impact

This specification:

Related Issues


Generated by Claude Code

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 28, 2026

Warning

Review limit reached

@ashleyshaw, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 43 minutes and 40 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 8fcc230e-a4fb-4e63-95e4-a39c79be871e

📥 Commits

Reviewing files that changed from the base of the PR and between adc35b7 and 6f715cf.

📒 Files selected for processing (2)
  • .github/projects/active/ISSUE_33_BRANDING_AGENT_PARENT_SPEC.md
  • CHANGELOG.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ai/branding-agent-parent-spec

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions Bot added status:needs-review Awaiting code review priority:normal Default priority type:chore Chore / small hygiene change type:bug Bug or defect meta:needs-changelog Requires a changelog entry before merge labels May 28, 2026
@github-actions
Copy link
Copy Markdown
Contributor

🔍 Reviewer Summary for PR #537

CI Status:success
Files changed: 1

Recommendations

  • Ready to proceed pending human review

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a comprehensive parent specification for a Unified Branding Agent, defining category taxonomies, header/footer requirements, badge systems, and schema/config approaches. The review feedback identifies several key issues: overlapping file patterns between 'ai-ops' and 'governance' categories that cause path-inference ambiguity, missing entries in the path-based category inference table, a schema validation mismatch regarding the 'values' property for badges, and a missing 'requirements' property definition in the categories JSON schema.


**Purpose**: AI operations, automation, and governance documentation
**Audience**: Maintainers, automation engineers, governance stakeholders
**File Patterns**: `docs/**/*governance*.md`, `docs/**/*automation*.md`
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The file pattern 'docs//governance.md' is defined for both the 'ai-ops' category (line 114) and the 'governance' category (line 270). This overlap creates ambiguity for the path-based category inference engine, making template selection non-deterministic. Additionally, documentation and governance files in the docs/ directory must use UPPERCASE naming with underscores (e.g., GOVERNANCE_REVISION_LOG.md). Consider differentiating the file patterns using UPPERCASE with underscores, such as 'docs//AI_OPS.md' for 'ai-ops' and 'docs/**/GOVERNANCE.md' for 'governance'.

References
  1. Documentation and governance files in the docs/ directory must use UPPERCASE naming with underscores (e.g., GOVERNANCE_REVISION_LOG.md), as the lowercase-with-hyphens naming convention applies to other asset types and not to docs/ files.

Comment on lines +902 to +917
| Path Pattern | Inferred Category |
| --- | --- |
| `docs/**/*.md` | `docs` |
| `instructions/**/*.md` | `instructions` |
| `agents/**/*.md` | `agents` |
| `prompts/**/*.md` | `prompts` |
| `schema/**/*.md` | `schema` |
| `awesome-copilot/**/*.md` | `awesome-copilot` |
| `research/**/*.md` | `research` |
| `.github/workflows/**/*.md` | `workflow` |
| `.github/ISSUE_TEMPLATE/**/*.md` | `issue-template` |
| `.github/PULL_REQUEST_TEMPLATE/**/*.md` | `pull-request-template` |
| `*.agent.md` | `agents` |
| `*.instructions.md` | `instructions` |
| `*.prompt.md` | `prompts` |
| `README.md` (any level) | `readme` |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The path-based category inference table is missing entries for several of the 16 defined categories, specifically 'ai-ops', 'test', 'utility', 'audit', and 'governance'. Without explicit path patterns for these categories, the branding agent will not be able to infer them automatically, causing them to fall back to the default 'documentation' category. Consider updating the table to include all 16 categories or explicitly documenting how these sub-patterns are resolved.

Comment on lines +835 to +846
"badges": {
"type": "object",
"additionalProperties": {
"type": "object",
"required": ["values"],
"properties": {
"values": { "type": "array", "items": { "type": "string" } },
"colors": { "type": "object" },
"usage": { "type": "string" }
}
}
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The JSON Schema defined here requires the 'values' property for all badges under 'additionalProperties' (line 839). However, the 'version' badge configuration in 'config/badges.yaml' (line 785) does not define a 'values' property, using 'format' instead. This discrepancy will cause schema validation to fail. Consider updating the schema to make 'values' optional or support alternative badge structures.

Suggested change
"badges": {
"type": "object",
"additionalProperties": {
"type": "object",
"required": ["values"],
"properties": {
"values": { "type": "array", "items": { "type": "string" } },
"colors": { "type": "object" },
"usage": { "type": "string" }
}
}
}
"badges": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"values": { "type": "array", "items": { "type": "string" } },
"format": { "type": "string" },
"colors": { "type": "object" },
"usage": { "type": "string" },
"auto_increment": { "type": "boolean" }
}
}
}

Comment on lines +810 to +827
"categories": {
"type": "object",
"additionalProperties": {
"type": "object",
"required": ["name", "purpose", "audience"],
"properties": {
"name": { "type": "string" },
"purpose": { "type": "string" },
"audience": { "type": "string" },
"default_footer": { "type": "string" },
"default_header": { "type": "string" },
"permitted_badges": {
"type": "array",
"items": { "type": "string" }
}
}
}
},
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The category configuration in 'config/categories.yaml' (line 686) defines a 'requirements' property containing frontmatter, header, and footer rules. However, this property is not defined in the JSON Schema for categories (lines 810-827). To ensure strict validation of the configuration model, consider adding the 'requirements' property to the schema.

    "categories": {
      "type": "object",
      "additionalProperties": {
        "type": "object",
        "required": ["name", "purpose", "audience"],
        "properties": {
          "name": { "type": "string" },
          "purpose": { "type": "string" },
          "audience": { "type": "string" },
          "default_footer": { "type": "string" },
          "default_header": { "type": "string" },
          "permitted_badges": {
            "type": "array",
            "items": { "type": "string" }
          },
          "requirements": {
            "type": "object",
            "properties": {
              "frontmatter": {
                "type": "object",
                "properties": {
                  "required": { "type": "array", "items": { "type": "string" } },
                  "optional": { "type": "array", "items": { "type": "string" } }
                }
              },
              "header": { "type": "string" },
              "footer": { "type": "string" }
            }
          }
        }
      }
    },

@github-actions github-actions Bot added area:documentation Docs & guides lang:md Markdown content/docs and removed type:chore Chore / small hygiene change labels May 28, 2026
@github-actions
Copy link
Copy Markdown
Contributor

🔍 Reviewer Summary for PR #537

CI Status:success
Files changed: 2

Recommendations

  • Ready to proceed pending human review

@ashleyshaw ashleyshaw force-pushed the ai/branding-agent-parent-spec branch from 987ad94 to d260d12 Compare May 28, 2026 20:11
@github-actions
Copy link
Copy Markdown
Contributor

🔍 Reviewer Summary for PR #537

CI Status:success
Files changed: 2

Recommendations

  • Ready to proceed pending human review

…ding agent

Specification covers:
- Complete taxonomy of 16 document categories with full requirements
- Header and footer requirements per category
- Footer variant specifications (5 variants each for 6 key categories)
- Badge requirements and types
- Schema/config approach (YAML + JSON Schema recommended)
- Frontmatter requirements and category inference
- Accessibility and readability constraints
- 4-phase delivery plan with milestones
- Acceptance criteria and implementation relationships

This specification unblocks child issues #46, #49, and #48 by providing
the foundation for template design, schema implementation, and agent development.

https://claude.ai/code/session_016NcEdvkmrV1EbFNozPGeGX
@ashleyshaw ashleyshaw force-pushed the ai/branding-agent-parent-spec branch from d260d12 to 6f715cf Compare May 28, 2026 20:13
@github-actions
Copy link
Copy Markdown
Contributor

🔍 Reviewer Summary for PR #537

CI Status:success
Files changed: 2

Recommendations

  • Ready to proceed pending human review

@ashleyshaw ashleyshaw marked this pull request as ready for review May 28, 2026 20:16
@ashleyshaw ashleyshaw merged commit 76334f3 into develop May 28, 2026
14 checks passed
@ashleyshaw ashleyshaw deleted the ai/branding-agent-parent-spec branch May 28, 2026 20:16
Copy link
Copy Markdown

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

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: 6f715cfd20

ℹ️ 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".

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

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

1. **Frontmatter `category` field** — If present, use specified category
2. **Path-based inference** — If path matches known pattern (e.g., `docs/`), infer category
3. **Filename pattern matching** — If filename matches known pattern (e.g., `*.agent.md`), infer category
4. **Fallback to `documentation`** — Default category for unrecognized files
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 a configured fallback category

When the category cannot be inferred, this spec tells the future agent to set category to documentation, but the taxonomy and config examples define docs as the documentation category and do not define a documentation category. For any unrecognised Markdown file, implementing this literally would select a category with no configured headers/footers or badges, so the fallback should use an actual configured category such as docs.

Useful? React with 👍 / 👎.

Comment on lines +890 to +894
file_type: "documentation" # or "agent", "instruction", "prompt", etc.
category: "docs" # Optional; inferred from path if omitted
owners: ["@maintainer1", "@maintainer2"]
version: "v1.0.0" # Optional
status: "Active" # Optional; default: "Active"
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 Keep the frontmatter example schema-valid

This copyable frontmatter example includes values that do not pass the repo's current frontmatter schema: instruction files use file_type: "instructions" elsewhere in this spec/schema, and status is enumerated as lowercase values such as active. If implementers copy this block into the branding config/remediation work, the generated files will fail validate-frontmatter; please align the example with the existing schema values.

Useful? React with 👍 / 👎.

@@ -0,0 +1,1103 @@
---
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 Rename the project spec to the required slug format

The repo's instructions/community-standards.instructions.md file-name rules require lowercase words separated by hyphens for documentation/project files, but this new active project file is named with uppercase letters and underscores. That leaves the project outside the documented naming convention and can break scripts or indexes that assume {subject}-{type}.md-style slugs; please rename it to a lowercase hyphenated path and update the changelog reference.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:documentation Docs & guides lang:md Markdown content/docs meta:needs-changelog Requires a changelog entry before merge priority:normal Default priority status:needs-review Awaiting code review type:bug Bug or defect

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[AI Ops] Spec and implementation plan for unified branding agent (headers, footers, badges)

2 participants