diff --git a/plugins/semantic-anchors/scripts/prompt-onboarding.sh b/plugins/semantic-anchors/scripts/prompt-onboarding.sh index 8f063fe..a8ecdae 100755 --- a/plugins/semantic-anchors/scripts/prompt-onboarding.sh +++ b/plugins/semantic-anchors/scripts/prompt-onboarding.sh @@ -1,8 +1,8 @@ -#!/bin/bash +#!/bin/sh # Claude SessionStart hook that prompts for semantic-anchor onboarding # when no managed anchor block is present yet. -set -euo pipefail +set -eu command -v python3 >/dev/null 2>&1 || { echo "Error: python3 is required but not found" >&2; exit 1; } diff --git a/plugins/semantic-anchors/skills/semantic-anchor-translator/SKILL.md b/plugins/semantic-anchors/skills/semantic-anchor-translator/SKILL.md index e1c488a..b1e6d30 100644 --- a/plugins/semantic-anchors/skills/semantic-anchor-translator/SKILL.md +++ b/plugins/semantic-anchors/skills/semantic-anchor-translator/SKILL.md @@ -1,6 +1,6 @@ --- name: semantic-anchor-translator -description: Bi-directional translator between verbose descriptions and established terminology (semantic anchors). Use when (1) user describes a concept verbosely and you want to identify the precise term, or (2) user asks for methodology/approach and you want to suggest relevant anchors. Covers 50+ terms across testing, architecture, design principles, problem-solving, requirements, documentation, and strategic planning. +description: Bi-directional translator between verbose descriptions and established terminology (semantic anchors). Use when (1) user describes a concept verbosely and you want to identify the precise term, or (2) user asks for methodology/approach and you want to suggest relevant anchors. Covers 120+ terms across testing, architecture, design principles, problem-solving, requirements, documentation, communication, development workflow, statistical methods, strategic planning, and creative writing. metadata: author: LLM-Coding version: "1.0" @@ -59,11 +59,14 @@ Browse online: https://llm-coding.github.io/Semantic-Anchors/ | Category | Key Anchors | |----------|-------------| -| Testing | TDD Chicago/London, Testing Pyramid, Mutation Testing, Property-Based Testing | -| Architecture | Clean Architecture, Hexagonal, DDD, arc42, C4, ADR, MADR | -| Design | SOLID, DRY, SPOT, SSOT, Fowler Patterns | -| Problem-Solving | Five Whys, Feynman Technique, Rubber Duck, Devil's Advocate | -| Requirements | MoSCoW, EARS, User Story Mapping, JTBD, Impact Mapping | -| Communication | BLUF, Pyramid Principle, MECE, Chatham House Rule | -| Strategic | Cynefin, Wardley Mapping, Pugh Matrix | -| Documentation | Diátaxis, Docs-as-Code | +| Testing & Quality | TDD Chicago/London, BDD, Gherkin, Test Double (Meszaros + 5 subtypes), Testing Pyramid, Mutation Testing, Property-Based Testing, Fagan Inspection, STRIDE, LINDDUN, LLM-Evaluations | +| Software Architecture | Clean Architecture, Hexagonal, DDD, EDA, CQRS, VSA, arc42, C4, ADR, MADR, ATAM, LASR, ISO 25010, OWASP Top 10 | +| Design Principles | SOLID (+ 5 individual), GRASP, CRC-Cards, GoF Patterns (23 patterns), Fowler PEAA, DRY, KISS, SPOT, SSOT, YAGNI | +| Problem-Solving | Five Whys, Feynman Technique, Rubber Duck, Devil's Advocate, Morphological Box, Chain of Thought, Cynefin | +| Requirements | INVEST, PRD, MoSCoW, EARS, User Story Mapping, JTBD, Impact Mapping, Problem Space NVC | +| Communication | BLUF, Pyramid Principle, MECE, Gutes Deutsch, Plain English, Chatham House Rule, Socratic Method, MBTI | +| Documentation | P.A.R.A., Diátaxis, Docs-as-Code | +| Development Workflow | GTD, Definition of Done, GitHub Flow, Conventional Commits, Effective Go, SemVer, BEM, Mikado Method, Hemingway Bridge | +| Statistical Methods | SPC, Control Chart, Nelson Rules | +| Strategic Planning | Wardley Mapping, Pugh Matrix, SWOT, PERT | +| Creative Writing | Three-Act Structure, Hero's Journey, Save the Cat!, Fichtean Curve, Freytag's Pyramid, Story Circle, Kishōtenketsu | diff --git a/plugins/semantic-anchors/skills/semantic-anchor-translator/references/catalog.md b/plugins/semantic-anchors/skills/semantic-anchor-translator/references/catalog.md index 016f49f..148b0e6 100644 --- a/plugins/semantic-anchors/skills/semantic-anchor-translator/references/catalog.md +++ b/plugins/semantic-anchors/skills/semantic-anchor-translator/references/catalog.md @@ -28,6 +28,26 @@ Source: https://github.com/LLM-Coding/Semantic-Anchors - **Proponents:** Gerard Meszaros - **Core:** Taxonomy of test substitutes — Dummy (unused), Stub (canned responses), Spy (records calls), Mock (verifies interactions), Fake (simplified implementation) +### Test Double Dummy +- **Proponents:** Gerard Meszaros +- **Core:** Placeholder passed to fill required parameters but never actually used in the test; has no behavior + +### Test Double Stub +- **Proponents:** Gerard Meszaros +- **Core:** Returns predefined (canned) responses to calls; does not verify interactions, only supplies data + +### Test Double Spy +- **Proponents:** Gerard Meszaros +- **Core:** Stub that also records how it was called; assertions happen after the action, not as pre-programmed expectations + +### Test Double Mock +- **Proponents:** Gerard Meszaros +- **Core:** Pre-programmed with expectations about which calls should be made; verifies interactions and fails immediately if expectations are violated + +### Test Double Fake +- **Proponents:** Gerard Meszaros +- **Core:** Working but simplified implementation unsuitable for production; has real behavior (e.g. in-memory database) but takes shortcuts + ### Testing Pyramid - **Core:** Many unit tests, fewer integration tests, fewest E2E tests @@ -131,23 +151,28 @@ Source: https://github.com/LLM-Coding/Semantic-Anchors ### SOLID Principles - **Core:** Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion -#### SOLID-SRP (Single Responsibility Principle) +### SOLID-SRP +- **Also known as:** Single Responsibility Principle - **Proponents:** Robert C. Martin - **Core:** Each class should have only one reason to change -#### SOLID-OCP (Open/Closed Principle) +### SOLID-OCP +- **Also known as:** Open/Closed Principle - **Proponents:** Robert C. Martin, Bertrand Meyer - **Core:** Open for extension, closed for modification -#### SOLID-LSP (Liskov Substitution Principle) +### SOLID-LSP +- **Also known as:** Liskov Substitution Principle - **Proponents:** Robert C. Martin, Barbara Liskov - **Core:** Subtypes must be substitutable for their base types -#### SOLID-ISP (Interface Segregation Principle) +### SOLID-ISP +- **Also known as:** Interface Segregation Principle - **Proponents:** Robert C. Martin - **Core:** Don't force clients to depend on unused interfaces -#### SOLID-DIP (Dependency Inversion Principle) +### SOLID-DIP +- **Also known as:** Dependency Inversion Principle - **Proponents:** Robert C. Martin - **Core:** Depend on abstractions, not concrete implementations @@ -184,34 +209,103 @@ Source: https://github.com/LLM-Coding/Semantic-Anchors - **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides - **Core:** 23 patterns in 3 categories (Creational, Structural, Behavioral), pattern language, composition over inheritance, program to an interface -#### Creational Patterns -- **GoF-Abstract Factory** — Families of related objects without specifying concrete classes -- **GoF-Builder** — Construct complex objects step by step -- **GoF-Factory Method** — Let subclasses decide which class to instantiate -- **GoF-Prototype** — Clone existing objects -- **GoF-Singleton** — Ensure single instance with global access - -#### Structural Patterns -- **GoF-Adapter** — Convert interface to one clients expect -- **GoF-Bridge** — Separate abstraction from implementation -- **GoF-Composite** — Compose objects into tree structures -- **GoF-Decorator** — Add responsibilities dynamically -- **GoF-Facade** — Simplified interface to a subsystem -- **GoF-Flyweight** — Share fine-grained objects efficiently (not a semantic anchor) -- **GoF-Proxy** — Surrogate controlling access to another object - -#### Behavioral Patterns -- **GoF-Chain of Responsibility** — Pass requests along a chain of handlers -- **GoF-Command** — Encapsulate requests as objects -- **GoF-Interpreter** — Grammar and interpreter for a language (not a semantic anchor) -- **GoF-Iterator** — Sequential access without exposing structure -- **GoF-Mediator** — Centralize complex communications -- **GoF-Memento** — Capture and restore object state (not a semantic anchor) -- **GoF-Observer** — Notify dependents of state changes -- **GoF-State** — Alter behavior when internal state changes -- **GoF-Strategy** — Interchangeable algorithm families -- **GoF-Template Method** — Define skeleton, let subclasses fill in steps -- **GoF-Visitor** — Operations on elements without changing their classes (not a semantic anchor) +### GoF-Abstract Factory Pattern +- **Also known as:** Kit +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Create families of related objects without specifying concrete classes (Creational) + +### GoF-Builder Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Separate construction of a complex object from its representation; same process can create different representations (Creational) + +### GoF-Factory Method Pattern +- **Also known as:** Virtual Constructor +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Define an interface for creating an object, but let subclasses decide which class to instantiate (Creational) + +### GoF-Prototype Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Create new objects by copying a prototypical instance (Creational) + +### GoF-Singleton Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Ensure a class has only one instance with a global access point (Creational) + +### GoF-Adapter Pattern +- **Also known as:** Wrapper +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Convert an interface into another interface clients expect; makes incompatible interfaces work together (Structural) + +### GoF-Bridge Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Decouple an abstraction from its implementation so both can vary independently (Structural) + +### GoF-Composite Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Compose objects into tree structures to represent part-whole hierarchies; treat individual objects and compositions uniformly (Structural) + +### GoF-Decorator Pattern +- **Also known as:** Wrapper +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Attach additional responsibilities to an object dynamically; flexible alternative to subclassing (Structural) + +### GoF-Facade Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Provide a unified interface to a set of interfaces in a subsystem; defines a higher-level interface (Structural) + +### GoF-Flyweight Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Use sharing to support large numbers of fine-grained objects efficiently (Structural) + +### GoF-Proxy Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Provide a surrogate or placeholder for another object to control access to it (Structural) + +### GoF-Chain of Responsibility Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Pass requests along a chain of handlers; each handler decides to process or forward (Behavioral) + +### GoF-Command Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Encapsulate a request as an object, enabling parameterization, queuing, logging, and undoable operations (Behavioral) + +### GoF-Interpreter Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Define a representation for a language's grammar and an interpreter to process sentences (Behavioral) + +### GoF-Iterator Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Provide a way to access elements of an aggregate object sequentially without exposing its underlying representation (Behavioral) + +### GoF-Mediator Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Define an object that encapsulates how a set of objects interact; promotes loose coupling (Behavioral) + +### GoF-Memento Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Capture and externalize an object's internal state so it can be restored later, without violating encapsulation (Behavioral) + +### GoF-Observer Pattern +- **Also known as:** Publish-Subscribe, Event-Listener +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Define a one-to-many dependency so that when one object changes state, all dependents are notified (Behavioral) + +### GoF-State Pattern +- **Also known as:** Objects for States +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Allow an object to alter its behavior when its internal state changes; the object will appear to change its class (Behavioral) + +### GoF-Strategy Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Define a family of algorithms, encapsulate each one, and make them interchangeable (Behavioral) + +### GoF-Template Method Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Define the skeleton of an algorithm in an operation, deferring some steps to subclasses (Behavioral) + +### GoF-Visitor Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Represent an operation to be performed on elements of an object structure without changing their classes (Behavioral) ### Patterns of Enterprise Application Architecture (PEAA) - **Proponents:** Martin Fowler @@ -225,7 +319,7 @@ Source: https://github.com/LLM-Coding/Semantic-Anchors ### Feynman Technique - **Proponents:** Richard Feynman -- **Core:** Explain concept simply, identify gaps, refine understanding +- **Core:** Explain concepts simply, identify gaps, refine understanding ### Rubber Duck Debugging - **Core:** Explain code line-by-line to find bugs diff --git a/skill/semantic-anchor-translator/references/catalog.md b/skill/semantic-anchor-translator/references/catalog.md index ac68c7d..148b0e6 100644 --- a/skill/semantic-anchor-translator/references/catalog.md +++ b/skill/semantic-anchor-translator/references/catalog.md @@ -28,25 +28,25 @@ Source: https://github.com/LLM-Coding/Semantic-Anchors - **Proponents:** Gerard Meszaros - **Core:** Taxonomy of test substitutes — Dummy (unused), Stub (canned responses), Spy (records calls), Mock (verifies interactions), Fake (simplified implementation) -#### Test Double: Dummy (Meszaros) +### Test Double Dummy - **Proponents:** Gerard Meszaros -- **Core:** Object passed to fill a required parameter but never actually used; simplest test double; if a Dummy is called, the test setup is wrong +- **Core:** Placeholder passed to fill required parameters but never actually used in the test; has no behavior -#### Test Double: Stub (Meszaros) +### Test Double Stub - **Proponents:** Gerard Meszaros -- **Core:** Provides predefined (canned) responses to calls during a test; does not verify interactions; only supplies data; favored in Chicago School TDD +- **Core:** Returns predefined (canned) responses to calls; does not verify interactions, only supplies data -#### Test Double: Spy (Meszaros) +### Test Double Spy - **Proponents:** Gerard Meszaros -- **Core:** A Stub that also records how it was called (methods, arguments, count); assertions happen after the action, not as pre-programmed expectations +- **Core:** Stub that also records how it was called; assertions happen after the action, not as pre-programmed expectations -#### Test Double: Mock (Meszaros) +### Test Double Mock - **Proponents:** Gerard Meszaros -- **Core:** Pre-programmed with expectations about which calls should be made; actively verifies behavior during execution; favored in London School TDD +- **Core:** Pre-programmed with expectations about which calls should be made; verifies interactions and fails immediately if expectations are violated -#### Test Double: Fake (Meszaros) +### Test Double Fake - **Proponents:** Gerard Meszaros -- **Core:** Working but simplified implementation unsuitable for production; has real logic (unlike Stubs); examples: in-memory database, local email sender +- **Core:** Working but simplified implementation unsuitable for production; has real behavior (e.g. in-memory database) but takes shortcuts ### Testing Pyramid - **Core:** Many unit tests, fewer integration tests, fewest E2E tests @@ -151,23 +151,28 @@ Source: https://github.com/LLM-Coding/Semantic-Anchors ### SOLID Principles - **Core:** Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion -#### SOLID-SRP (Single Responsibility Principle) +### SOLID-SRP +- **Also known as:** Single Responsibility Principle - **Proponents:** Robert C. Martin - **Core:** Each class should have only one reason to change -#### SOLID-OCP (Open/Closed Principle) +### SOLID-OCP +- **Also known as:** Open/Closed Principle - **Proponents:** Robert C. Martin, Bertrand Meyer - **Core:** Open for extension, closed for modification -#### SOLID-LSP (Liskov Substitution Principle) +### SOLID-LSP +- **Also known as:** Liskov Substitution Principle - **Proponents:** Robert C. Martin, Barbara Liskov - **Core:** Subtypes must be substitutable for their base types -#### SOLID-ISP (Interface Segregation Principle) +### SOLID-ISP +- **Also known as:** Interface Segregation Principle - **Proponents:** Robert C. Martin - **Core:** Don't force clients to depend on unused interfaces -#### SOLID-DIP (Dependency Inversion Principle) +### SOLID-DIP +- **Also known as:** Dependency Inversion Principle - **Proponents:** Robert C. Martin - **Core:** Depend on abstractions, not concrete implementations @@ -204,34 +209,103 @@ Source: https://github.com/LLM-Coding/Semantic-Anchors - **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides - **Core:** 23 patterns in 3 categories (Creational, Structural, Behavioral), pattern language, composition over inheritance, program to an interface -#### Creational Patterns -- **GoF-Abstract Factory** — Families of related objects without specifying concrete classes -- **GoF-Builder** — Construct complex objects step by step -- **GoF-Factory Method** — Let subclasses decide which class to instantiate -- **GoF-Prototype** — Clone existing objects -- **GoF-Singleton** — Ensure single instance with global access - -#### Structural Patterns -- **GoF-Adapter** — Convert interface to one clients expect -- **GoF-Bridge** — Separate abstraction from implementation -- **GoF-Composite** — Compose objects into tree structures -- **GoF-Decorator** — Add responsibilities dynamically -- **GoF-Facade** — Simplified interface to a subsystem -- **GoF-Flyweight** — Share fine-grained objects efficiently (not a semantic anchor) -- **GoF-Proxy** — Surrogate controlling access to another object - -#### Behavioral Patterns -- **GoF-Chain of Responsibility** — Pass requests along a chain of handlers -- **GoF-Command** — Encapsulate requests as objects -- **GoF-Interpreter** — Grammar and interpreter for a language (not a semantic anchor) -- **GoF-Iterator** — Sequential access without exposing structure -- **GoF-Mediator** — Centralize complex communications -- **GoF-Memento** — Capture and restore object state (not a semantic anchor) -- **GoF-Observer** — Notify dependents of state changes -- **GoF-State** — Alter behavior when internal state changes -- **GoF-Strategy** — Interchangeable algorithm families -- **GoF-Template Method** — Define skeleton, let subclasses fill in steps -- **GoF-Visitor** — Operations on elements without changing their classes (not a semantic anchor) +### GoF-Abstract Factory Pattern +- **Also known as:** Kit +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Create families of related objects without specifying concrete classes (Creational) + +### GoF-Builder Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Separate construction of a complex object from its representation; same process can create different representations (Creational) + +### GoF-Factory Method Pattern +- **Also known as:** Virtual Constructor +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Define an interface for creating an object, but let subclasses decide which class to instantiate (Creational) + +### GoF-Prototype Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Create new objects by copying a prototypical instance (Creational) + +### GoF-Singleton Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Ensure a class has only one instance with a global access point (Creational) + +### GoF-Adapter Pattern +- **Also known as:** Wrapper +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Convert an interface into another interface clients expect; makes incompatible interfaces work together (Structural) + +### GoF-Bridge Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Decouple an abstraction from its implementation so both can vary independently (Structural) + +### GoF-Composite Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Compose objects into tree structures to represent part-whole hierarchies; treat individual objects and compositions uniformly (Structural) + +### GoF-Decorator Pattern +- **Also known as:** Wrapper +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Attach additional responsibilities to an object dynamically; flexible alternative to subclassing (Structural) + +### GoF-Facade Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Provide a unified interface to a set of interfaces in a subsystem; defines a higher-level interface (Structural) + +### GoF-Flyweight Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Use sharing to support large numbers of fine-grained objects efficiently (Structural) + +### GoF-Proxy Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Provide a surrogate or placeholder for another object to control access to it (Structural) + +### GoF-Chain of Responsibility Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Pass requests along a chain of handlers; each handler decides to process or forward (Behavioral) + +### GoF-Command Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Encapsulate a request as an object, enabling parameterization, queuing, logging, and undoable operations (Behavioral) + +### GoF-Interpreter Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Define a representation for a language's grammar and an interpreter to process sentences (Behavioral) + +### GoF-Iterator Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Provide a way to access elements of an aggregate object sequentially without exposing its underlying representation (Behavioral) + +### GoF-Mediator Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Define an object that encapsulates how a set of objects interact; promotes loose coupling (Behavioral) + +### GoF-Memento Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Capture and externalize an object's internal state so it can be restored later, without violating encapsulation (Behavioral) + +### GoF-Observer Pattern +- **Also known as:** Publish-Subscribe, Event-Listener +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Define a one-to-many dependency so that when one object changes state, all dependents are notified (Behavioral) + +### GoF-State Pattern +- **Also known as:** Objects for States +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Allow an object to alter its behavior when its internal state changes; the object will appear to change its class (Behavioral) + +### GoF-Strategy Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Define a family of algorithms, encapsulate each one, and make them interchangeable (Behavioral) + +### GoF-Template Method Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Define the skeleton of an algorithm in an operation, deferring some steps to subclasses (Behavioral) + +### GoF-Visitor Pattern +- **Proponents:** Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides +- **Core:** Represent an operation to be performed on elements of an object structure without changing their classes (Behavioral) ### Patterns of Enterprise Application Architecture (PEAA) - **Proponents:** Martin Fowler @@ -245,7 +319,7 @@ Source: https://github.com/LLM-Coding/Semantic-Anchors ### Feynman Technique - **Proponents:** Richard Feynman -- **Core:** Explain concept simply, identify gaps, refine understanding +- **Core:** Explain concepts simply, identify gaps, refine understanding ### Rubber Duck Debugging - **Core:** Explain code line-by-line to find bugs diff --git a/website/package-lock.json b/website/package-lock.json index 26f2ced..de97cc9 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -3724,19 +3724,6 @@ "node": ">=4" } }, - "node_modules/external-editor/node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/extract-zip": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", @@ -5162,16 +5149,16 @@ } }, "node_modules/lodash": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", - "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", "dev": true, "license": "MIT" }, "node_modules/lodash-es": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.23.tgz", - "integrity": "sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.18.1.tgz", + "integrity": "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==", "dev": true, "license": "MIT" }, @@ -5600,16 +5587,6 @@ "node": ">= 0.8.0" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -6825,52 +6802,13 @@ "license": "MIT" }, "node_modules/tmp": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", - "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", + "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", "dev": true, "license": "MIT", - "dependencies": { - "rimraf": "^2.6.3" - }, "engines": { - "node": ">=6" - } - }, - "node_modules/tmp/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/tmp/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "node": ">=14.14" } }, "node_modules/toidentifier": { @@ -7065,9 +7003,9 @@ } }, "node_modules/vite": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz", - "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.2.tgz", + "integrity": "sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==", "dev": true, "license": "MIT", "dependencies": { diff --git a/website/package.json b/website/package.json index ea3d8bf..e72d38e 100644 --- a/website/package.json +++ b/website/package.json @@ -43,6 +43,7 @@ }, "overrides": { "minimatch": ">=10.2.1", - "cookie": ">=0.7.0" + "cookie": ">=0.7.0", + "tmp": ">=0.2.4" } }