Skip to content

feat: Add GRASP semantic anchor#359

Merged
rdmueller merged 2 commits into
mainfrom
copilot/add-grasp-terminology
Mar 26, 2026
Merged

feat: Add GRASP semantic anchor#359
rdmueller merged 2 commits into
mainfrom
copilot/add-grasp-terminology

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 26, 2026

Adds GRASP (General Responsibility Assignment Software Patterns) as proposed — Craig Larman's 9 OO responsibility-assignment guidelines that are foundational to object-oriented design.

New files

  • docs/anchors/grasp.adoc — English anchor covering all 9 patterns: Information Expert, Creator, Controller, Low Coupling, High Cohesion, Polymorphism, Pure Fabrication, Indirection, Protected Variations
  • docs/anchors/grasp.de.adoc — German translation with full metadata attributes

Updated files

  • website/public/data/anchors.json — GRASP entry under design-principles category; related to solid-principles, gof-design-patterns, clean-architecture, domain-driven-design
  • skill/semantic-anchor-translator/references/catalog.md — GRASP entry added to Design Principles section for agent discoverability
Original prompt

This section details on the original issue you should resolve

<issue_title>[Anchor Proposal]: GRASP</issue_title>
<issue_description>### Proposed Term

GRASP

Context (Optional)

General Responsibility Assignment Software Patterns
Guidelines for assigning responsibilities in object-oriented design. I wrote a book about it in 2012... It's in Spanish but here there is a nice explanation:

https://en.wikipedia.org/wiki/GRASP_(object-oriented_design)

Pre-submission Checklist

  • I have searched existing anchors and this term is not already included
  • This term refers to a well-established concept (not something I invented)</issue_description>

Comments on the Issue (you are @copilot in this section)


⌨️ Start Copilot coding agent tasks without leaving your editor — available in VS Code, Visual Studio, JetBrains IDEs and Eclipse.

@raifdmueller
Copy link
Copy Markdown
Contributor

Analysis of Proposed Anchors

Evaluated against the quality criteria: Precise, Rich, Consistent, Attributable.

Summary

PR Anchor Tier Recommendation Rationale
#354 P.A.R.A. Method 3 ⚠️ Discuss Rich and attributable (Tiago Forte), but knowledge management — not SE methodology. Extends catalog scope.
#355 PERT 2 ✅ Accept Classic estimation technique (1958), precise formula, well-established. Tier 2 is correct — useful but niche.
#356 Spec-Driven Development 3 ⚠️ Discuss Relevant to our workflow doc, but is it an established anchor or an emerging practice? Proponents listed (Swagger, Thoughtworks) are not the originators of the term.
#357 Explicit Contract Surface 3 ❌ Reject Not an established term — it's a combination of existing patterns (ACL, DTOs, contract-first). Proponents listed (Evans, Martin, Fowler) didn't coin this term. Fails "Attributable" criterion.
#358 Vertical Slice Architecture 3 ✅ Accept Well-established (Jimmy Bogard), precise, rich. Tier 3 is justified — complements Clean/Hexagonal Architecture.
#359 GRASP 3 ✅ Accept Classic OO patterns (Craig Larman), 9 well-defined patterns. Tier 3 justified — foundational, widely taught.
#360 KISS 1 ⚠️ Discuss Tier 1 is correctly assigned by Copilot! KISS lacks definition depth — "keep it simple" is a directive, not a methodology. Same problem as YAGNI (also Tier 1). But it's so widely referenced that excluding it feels wrong.

Detailed Analysis

#354 P.A.R.A. Method — ⚠️ Discuss

  • Precise: Yes — four clear categories (Projects, Areas, Resources, Archive)
  • Rich: Moderate — primarily an organizational framework, less rich than Diataxis
  • Consistent: Yes — well-defined by Forte
  • Attributable: Yes — Tiago Forte, "Building a Second Brain"
  • Concern: Extends catalog beyond SE into personal productivity. Is that in scope?

#355 PERT — ✅ Accept

  • Precise: Very — concrete formula (O+4M+P)/6, network diagrams, critical path
  • Rich: Yes — connects estimation, scheduling, probability, risk
  • Consistent: Yes — 65+ years of established usage
  • Attributable: Yes — Malcolm, Roseboom, Clark, Fazar (1958)
  • Tier 2 correct: Useful but specialized (project planning, not daily coding)

#356 Spec-Driven Development — ⚠️ Discuss

  • Precise: Moderate — the term is used differently by different people (API-first vs. formal specs vs. our workflow doc)
  • Rich: Yes — connects to BDD, TDD, contract-first, verification
  • Consistent: Weak — no single canonical definition
  • Attributable: Weak — Swagger/Thoughtworks are not the originators; the term is emergent
  • Concern: We have a whole workflow document about this. Making it an anchor could create circular references. Also, our evaluation showed EARS (similar domain) scores poorly.

#357 Explicit Contract Surface — ❌ Reject

  • Precise: Moderate — describes a pattern but the name is not established
  • Rich: Yes — connects ACL, DTOs, mapping, DIP
  • Consistent: No — this is not a recognized term in the literature
  • Attributable: No — Evans/Martin/Fowler did not coin this term
  • This is a design practice, not a semantic anchor. It combines existing anchors (Clean Architecture, DDD, SOLID DIP) but doesn't add a new activation.

#358 Vertical Slice Architecture — ✅ Accept

  • Precise: Yes — clear distinction from layered architecture
  • Rich: Yes — connects to CQRS, feature cohesion, screaming architecture
  • Consistent: Yes — Jimmy Bogard's talks and blog posts are canonical
  • Attributable: Yes — Jimmy Bogard
  • Tier 3 justified: A well-known alternative to Clean/Hexagonal that LLMs should know

#359 GRASP — ✅ Accept

  • Precise: Very — 9 named patterns with clear definitions
  • Rich: Yes — foundational OO design patterns, connects to SOLID, GoF
  • Consistent: Yes — Craig Larman's "Applying UML and Patterns" is canonical
  • Attributable: Yes — Craig Larman
  • Tier 3 justified: Standard curriculum material, widely taught

#360 KISS — ⚠️ Discuss

  • Precise: Low — "keep it simple" is a directive, not a methodology
  • Rich: Low — doesn't activate multiple interconnected concepts
  • Consistent: Mixed — everyone agrees on the principle but not on what "simple" means
  • Attributable: Yes — Kelly Johnson (Lockheed Skunk Works)
  • Tier 1 correctly assigned: Same tier as YAGNI and TIMTOWTDI. Copilot got this right!
  • Question: We reference KISS in the workflow doc (AGENTS.md conventions). Rejecting it would be inconsistent.

@rdmueller rdmueller marked this pull request as ready for review March 26, 2026 13:04
@rdmueller rdmueller merged commit 9589f07 into main Mar 26, 2026
6 of 7 checks passed
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.

[Anchor Proposal]: GRASP

3 participants