{
  "snapshot": "2026-09-06T15:35:11.864908+00:00",
  "interpretation": "Pedagogical mapping, not upstream authors claiming GoF taxonomy. Selected source ranges read; upstream repositories not built or fully audited.",
  "repositories": [
    {
      "repo": "golang/go",
      "sha": "c5941983810b68ba93c30f0ef22c91ad63fb3e5c",
      "stars": 137557,
      "archived": false,
      "license": "BSD-3-Clause",
      "default_branch": "master"
    },
    {
      "repo": "grpc/grpc-go",
      "sha": "298389d61dd6f3071da1fa34d2fdf3f726d4aa36",
      "stars": 23046,
      "archived": false,
      "license": "Apache-2.0",
      "default_branch": "master"
    },
    {
      "repo": "kubernetes/kubernetes",
      "sha": "b2ec8b6fefac451a2dedafc4dd71f2f16c7a6abe",
      "stars": 126422,
      "archived": false,
      "license": "Apache-2.0",
      "default_branch": "master"
    },
    {
      "repo": "uber-go/zap",
      "sha": "bb1a55dd13257cf7cbd06b4146674c67ca614dea",
      "stars": 24647,
      "archived": false,
      "license": "MIT",
      "default_branch": "master"
    },
    {
      "repo": "gin-gonic/gin",
      "sha": "dcaa4296d111981ffb31ac3eba90bb63e1eb5ab9",
      "stars": 89174,
      "archived": false,
      "license": "MIT",
      "default_branch": "master"
    },
    {
      "repo": "spf13/cobra",
      "sha": "adbc8813901bba65827259daa8e22ff94ec1f30e",
      "stars": 44574,
      "archived": false,
      "license": "Apache-2.0",
      "default_branch": "main"
    },
    {
      "repo": "cenkalti/backoff",
      "sha": "ffcfd8ab39e2910a1180ba0b7a02a52f0485adc9",
      "stars": 4058,
      "archived": false,
      "license": "MIT",
      "default_branch": "v7"
    },
    {
      "repo": "junegunn/fzf",
      "sha": "52f4319a72c17e123396cc3a2e6abf2e96e9d753",
      "stars": 82841,
      "archived": false,
      "license": "MIT",
      "default_branch": "master"
    },
    {
      "repo": "google/btree",
      "sha": "aeba20f7a1e1315badec4eca4fdc9f754f5f880a",
      "stars": 4162,
      "archived": true,
      "license": "Apache-2.0",
      "default_branch": "master"
    },
    {
      "repo": "ethereum/go-ethereum",
      "sha": "d799b1a3f20fe9d983bfff6cc53fb246bcab1298",
      "stars": 51331,
      "archived": false,
      "license": "LGPL-3.0",
      "default_branch": "master"
    },
    {
      "repo": "go-sql-driver/mysql",
      "sha": "6a57eb17a8c8f81b4fb5998761cd074d9a7c88b0",
      "stars": 15280,
      "archived": false,
      "license": "MPL-2.0",
      "default_branch": "master"
    }
  ],
  "readings": {
    "factory-contract": {
      "repo": "grpc/grpc-go",
      "path": "balancer/balancer.go",
      "start": 221,
      "end": 228,
      "sha": "298389d61dd6f3071da1fa34d2fdf3f726d4aa36",
      "url": "https://github.com/grpc/grpc-go/blob/298389d61dd6f3071da1fa34d2fdf3f726d4aa36/balancer/balancer.go#L221-L228"
    },
    "factory-product": {
      "repo": "grpc/grpc-go",
      "path": "balancer/base/balancer.go",
      "start": 35,
      "end": 61,
      "sha": "298389d61dd6f3071da1fa34d2fdf3f726d4aa36",
      "url": "https://github.com/grpc/grpc-go/blob/298389d61dd6f3071da1fa34d2fdf3f726d4aa36/balancer/base/balancer.go#L35-L61"
    },
    "family-contract": {
      "repo": "golang/go",
      "path": "src/database/sql/driver/driver.go",
      "start": 231,
      "end": 264,
      "sha": "c5941983810b68ba93c30f0ef22c91ad63fb3e5c",
      "url": "https://github.com/golang/go/blob/c5941983810b68ba93c30f0ef22c91ad63fb3e5c/src/database/sql/driver/driver.go#L231-L264"
    },
    "family-tx": {
      "repo": "go-sql-driver/mysql",
      "path": "connection.go",
      "start": 145,
      "end": 164,
      "sha": "6a57eb17a8c8f81b4fb5998761cd074d9a7c88b0",
      "url": "https://github.com/go-sql-driver/mysql/blob/6a57eb17a8c8f81b4fb5998761cd074d9a7c88b0/connection.go#L145-L164"
    },
    "family-stmt": {
      "repo": "go-sql-driver/mysql",
      "path": "connection.go",
      "start": 214,
      "end": 252,
      "sha": "6a57eb17a8c8f81b4fb5998761cd074d9a7c88b0",
      "url": "https://github.com/go-sql-driver/mysql/blob/6a57eb17a8c8f81b4fb5998761cd074d9a7c88b0/connection.go#L214-L252"
    },
    "builder-steps": {
      "repo": "kubernetes/kubernetes",
      "path": "staging/src/k8s.io/client-go/rest/request.go",
      "start": 214,
      "end": 255,
      "sha": "b2ec8b6fefac451a2dedafc4dd71f2f16c7a6abe",
      "url": "https://github.com/kubernetes/kubernetes/blob/b2ec8b6fefac451a2dedafc4dd71f2f16c7a6abe/staging/src/k8s.io/client-go/rest/request.go#L214-L255"
    },
    "builder-name": {
      "repo": "kubernetes/kubernetes",
      "path": "staging/src/k8s.io/client-go/rest/request.go",
      "start": 332,
      "end": 368,
      "sha": "b2ec8b6fefac451a2dedafc4dd71f2f16c7a6abe",
      "url": "https://github.com/kubernetes/kubernetes/blob/b2ec8b6fefac451a2dedafc4dd71f2f16c7a6abe/staging/src/k8s.io/client-go/rest/request.go#L332-L368"
    },
    "builder-run": {
      "repo": "kubernetes/kubernetes",
      "path": "staging/src/k8s.io/client-go/rest/request.go",
      "start": 1128,
      "end": 1147,
      "sha": "b2ec8b6fefac451a2dedafc4dd71f2f16c7a6abe",
      "url": "https://github.com/kubernetes/kubernetes/blob/b2ec8b6fefac451a2dedafc4dd71f2f16c7a6abe/staging/src/k8s.io/client-go/rest/request.go#L1128-L1147"
    },
    "prototype": {
      "repo": "kubernetes/kubernetes",
      "path": "staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go",
      "start": 3944,
      "end": 3970,
      "sha": "b2ec8b6fefac451a2dedafc4dd71f2f16c7a6abe",
      "url": "https://github.com/kubernetes/kubernetes/blob/b2ec8b6fefac451a2dedafc4dd71f2f16c7a6abe/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go#L3944-L3970"
    },
    "singleton": {
      "repo": "golang/go",
      "path": "src/time/zoneinfo.go",
      "start": 78,
      "end": 99,
      "sha": "c5941983810b68ba93c30f0ef22c91ad63fb3e5c",
      "url": "https://github.com/golang/go/blob/c5941983810b68ba93c30f0ef22c91ad63fb3e5c/src/time/zoneinfo.go#L78-L99"
    },
    "once": {
      "repo": "golang/go",
      "path": "src/sync/oncefunc.go",
      "start": 43,
      "end": 75,
      "sha": "c5941983810b68ba93c30f0ef22c91ad63fb3e5c",
      "url": "https://github.com/golang/go/blob/c5941983810b68ba93c30f0ef22c91ad63fb3e5c/src/sync/oncefunc.go#L43-L75"
    },
    "adapter": {
      "repo": "golang/go",
      "path": "src/net/http/server.go",
      "start": 2344,
      "end": 2353,
      "sha": "c5941983810b68ba93c30f0ef22c91ad63fb3e5c",
      "url": "https://github.com/golang/go/blob/c5941983810b68ba93c30f0ef22c91ad63fb3e5c/src/net/http/server.go#L2344-L2353"
    },
    "bridge-api": {
      "repo": "uber-go/zap",
      "path": "logger.go",
      "start": 41,
      "end": 57,
      "sha": "bb1a55dd13257cf7cbd06b4146674c67ca614dea",
      "url": "https://github.com/uber-go/zap/blob/bb1a55dd13257cf7cbd06b4146674c67ca614dea/logger.go#L41-L57"
    },
    "bridge-core": {
      "repo": "uber-go/zap",
      "path": "zapcore/core.go",
      "start": 23,
      "end": 45,
      "sha": "bb1a55dd13257cf7cbd06b4146674c67ca614dea",
      "url": "https://github.com/uber-go/zap/blob/bb1a55dd13257cf7cbd06b4146674c67ca614dea/zapcore/core.go#L23-L45"
    },
    "bridge-call": {
      "repo": "uber-go/zap",
      "path": "logger.go",
      "start": 322,
      "end": 344,
      "sha": "bb1a55dd13257cf7cbd06b4146674c67ca614dea",
      "url": "https://github.com/uber-go/zap/blob/bb1a55dd13257cf7cbd06b4146674c67ca614dea/logger.go#L322-L344"
    },
    "composite": {
      "repo": "golang/go",
      "path": "src/errors/join.go",
      "start": 11,
      "end": 63,
      "sha": "c5941983810b68ba93c30f0ef22c91ad63fb3e5c",
      "url": "https://github.com/golang/go/blob/c5941983810b68ba93c30f0ef22c91ad63fb3e5c/src/errors/join.go#L11-L63"
    },
    "decorator": {
      "repo": "golang/go",
      "path": "src/io/io.go",
      "start": 458,
      "end": 482,
      "sha": "c5941983810b68ba93c30f0ef22c91ad63fb3e5c",
      "url": "https://github.com/golang/go/blob/c5941983810b68ba93c30f0ef22c91ad63fb3e5c/src/io/io.go#L458-L482"
    },
    "facade": {
      "repo": "golang/go",
      "path": "src/net/http/client.go",
      "start": 443,
      "end": 476,
      "sha": "c5941983810b68ba93c30f0ef22c91ad63fb3e5c",
      "url": "https://github.com/golang/go/blob/c5941983810b68ba93c30f0ef22c91ad63fb3e5c/src/net/http/client.go#L443-L476"
    },
    "proxy-handler": {
      "repo": "golang/go",
      "path": "src/net/http/httputil/reverseproxy.go",
      "start": 421,
      "end": 450,
      "sha": "c5941983810b68ba93c30f0ef22c91ad63fb3e5c",
      "url": "https://github.com/golang/go/blob/c5941983810b68ba93c30f0ef22c91ad63fb3e5c/src/net/http/httputil/reverseproxy.go#L421-L450"
    },
    "proxy-forward": {
      "repo": "golang/go",
      "path": "src/net/http/httputil/reverseproxy.go",
      "start": 587,
      "end": 604,
      "sha": "c5941983810b68ba93c30f0ef22c91ad63fb3e5c",
      "url": "https://github.com/golang/go/blob/c5941983810b68ba93c30f0ef22c91ad63fb3e5c/src/net/http/httputil/reverseproxy.go#L587-L604"
    },
    "flyweight": {
      "repo": "golang/go",
      "path": "src/unique/handle.go",
      "start": 15,
      "end": 53,
      "sha": "c5941983810b68ba93c30f0ef22c91ad63fb3e5c",
      "url": "https://github.com/golang/go/blob/c5941983810b68ba93c30f0ef22c91ad63fb3e5c/src/unique/handle.go#L15-L53"
    },
    "chain": {
      "repo": "gin-gonic/gin",
      "path": "context.go",
      "start": 195,
      "end": 219,
      "sha": "dcaa4296d111981ffb31ac3eba90bb63e1eb5ab9",
      "url": "https://github.com/gin-gonic/gin/blob/dcaa4296d111981ffb31ac3eba90bb63e1eb5ab9/context.go#L195-L219"
    },
    "command": {
      "repo": "spf13/cobra",
      "path": "command.go",
      "start": 1014,
      "end": 1044,
      "sha": "adbc8813901bba65827259daa8e22ff94ec1f30e",
      "url": "https://github.com/spf13/cobra/blob/adbc8813901bba65827259daa8e22ff94ec1f30e/command.go#L1014-L1044"
    },
    "interpreter": {
      "repo": "golang/go",
      "path": "src/text/template/exec.go",
      "start": 260,
      "end": 295,
      "sha": "c5941983810b68ba93c30f0ef22c91ad63fb3e5c",
      "url": "https://github.com/golang/go/blob/c5941983810b68ba93c30f0ef22c91ad63fb3e5c/src/text/template/exec.go#L260-L295"
    },
    "interpreter-node": {
      "repo": "golang/go",
      "path": "src/text/template/parse/node.go",
      "start": 17,
      "end": 33,
      "sha": "c5941983810b68ba93c30f0ef22c91ad63fb3e5c",
      "url": "https://github.com/golang/go/blob/c5941983810b68ba93c30f0ef22c91ad63fb3e5c/src/text/template/parse/node.go#L17-L33"
    },
    "iterator": {
      "repo": "google/btree",
      "path": "btree.go",
      "start": 747,
      "end": 781,
      "sha": "aeba20f7a1e1315badec4eca4fdc9f754f5f880a",
      "url": "https://github.com/google/btree/blob/aeba20f7a1e1315badec4eca4fdc9f754f5f880a/btree.go#L747-L781"
    },
    "iterator-go": {
      "repo": "golang/go",
      "path": "src/go/ast/walk.go",
      "start": 380,
      "end": 397,
      "sha": "c5941983810b68ba93c30f0ef22c91ad63fb3e5c",
      "url": "https://github.com/golang/go/blob/c5941983810b68ba93c30f0ef22c91ad63fb3e5c/src/go/ast/walk.go#L380-L397"
    },
    "mediator": {
      "repo": "junegunn/fzf",
      "path": "src/util/eventbox.go",
      "start": 8,
      "end": 54,
      "sha": "52f4319a72c17e123396cc3a2e6abf2e96e9d753",
      "url": "https://github.com/junegunn/fzf/blob/52f4319a72c17e123396cc3a2e6abf2e96e9d753/src/util/eventbox.go#L8-L54"
    },
    "memento-api": {
      "repo": "ethereum/go-ethereum",
      "path": "core/state/statedb.go",
      "start": 761,
      "end": 769,
      "sha": "d799b1a3f20fe9d983bfff6cc53fb246bcab1298",
      "url": "https://github.com/ethereum/go-ethereum/blob/d799b1a3f20fe9d983bfff6cc53fb246bcab1298/core/state/statedb.go#L761-L769"
    },
    "memento-journal": {
      "repo": "ethereum/go-ethereum",
      "path": "core/state/journal.go",
      "start": 213,
      "end": 235,
      "sha": "d799b1a3f20fe9d983bfff6cc53fb246bcab1298",
      "url": "https://github.com/ethereum/go-ethereum/blob/d799b1a3f20fe9d983bfff6cc53fb246bcab1298/core/state/journal.go#L213-L235"
    },
    "observer-register": {
      "repo": "kubernetes/kubernetes",
      "path": "staging/src/k8s.io/client-go/tools/cache/shared_informer.go",
      "start": 1190,
      "end": 1208,
      "sha": "b2ec8b6fefac451a2dedafc4dd71f2f16c7a6abe",
      "url": "https://github.com/kubernetes/kubernetes/blob/b2ec8b6fefac451a2dedafc4dd71f2f16c7a6abe/staging/src/k8s.io/client-go/tools/cache/shared_informer.go#L1190-L1208"
    },
    "observer-notify": {
      "repo": "kubernetes/kubernetes",
      "path": "staging/src/k8s.io/client-go/tools/cache/shared_informer.go",
      "start": 1236,
      "end": 1259,
      "sha": "b2ec8b6fefac451a2dedafc4dd71f2f16c7a6abe",
      "url": "https://github.com/kubernetes/kubernetes/blob/b2ec8b6fefac451a2dedafc4dd71f2f16c7a6abe/staging/src/k8s.io/client-go/tools/cache/shared_informer.go#L1236-L1259"
    },
    "state-type": {
      "repo": "golang/go",
      "path": "src/text/template/parse/lex.go",
      "start": 109,
      "end": 126,
      "sha": "c5941983810b68ba93c30f0ef22c91ad63fb3e5c",
      "url": "https://github.com/golang/go/blob/c5941983810b68ba93c30f0ef22c91ad63fb3e5c/src/text/template/parse/lex.go#L109-L126"
    },
    "state-drive": {
      "repo": "golang/go",
      "path": "src/text/template/parse/lex.go",
      "start": 224,
      "end": 238,
      "sha": "c5941983810b68ba93c30f0ef22c91ad63fb3e5c",
      "url": "https://github.com/golang/go/blob/c5941983810b68ba93c30f0ef22c91ad63fb3e5c/src/text/template/parse/lex.go#L224-L238"
    },
    "state-transition": {
      "repo": "golang/go",
      "path": "src/text/template/parse/lex.go",
      "start": 270,
      "end": 298,
      "sha": "c5941983810b68ba93c30f0ef22c91ad63fb3e5c",
      "url": "https://github.com/golang/go/blob/c5941983810b68ba93c30f0ef22c91ad63fb3e5c/src/text/template/parse/lex.go#L270-L298"
    },
    "strategy": {
      "repo": "cenkalti/backoff",
      "path": "backoff.go",
      "start": 19,
      "end": 70,
      "sha": "ffcfd8ab39e2910a1180ba0b7a02a52f0485adc9",
      "url": "https://github.com/cenkalti/backoff/blob/ffcfd8ab39e2910a1180ba0b7a02a52f0485adc9/backoff.go#L19-L70"
    },
    "strategy-call": {
      "repo": "cenkalti/backoff",
      "path": "retry.go",
      "start": 153,
      "end": 172,
      "sha": "ffcfd8ab39e2910a1180ba0b7a02a52f0485adc9",
      "url": "https://github.com/cenkalti/backoff/blob/ffcfd8ab39e2910a1180ba0b7a02a52f0485adc9/retry.go#L153-L172"
    },
    "skeleton": {
      "repo": "cenkalti/backoff",
      "path": "retry.go",
      "start": 108,
      "end": 188,
      "sha": "ffcfd8ab39e2910a1180ba0b7a02a52f0485adc9",
      "url": "https://github.com/cenkalti/backoff/blob/ffcfd8ab39e2910a1180ba0b7a02a52f0485adc9/retry.go#L108-L188"
    },
    "visitor": {
      "repo": "golang/go",
      "path": "src/go/ast/walk.go",
      "start": 12,
      "end": 41,
      "sha": "c5941983810b68ba93c30f0ef22c91ad63fb3e5c",
      "url": "https://github.com/golang/go/blob/c5941983810b68ba93c30f0ef22c91ad63fb3e5c/src/go/ast/walk.go#L12-L41"
    },
    "visitor-leave": {
      "repo": "golang/go",
      "path": "src/go/ast/walk.go",
      "start": 350,
      "end": 377,
      "sha": "c5941983810b68ba93c30f0ef22c91ad63fb3e5c",
      "url": "https://github.com/golang/go/blob/c5941983810b68ba93c30f0ef22c91ad63fb3e5c/src/go/ast/walk.go#L350-L377"
    }
  },
  "patterns": [
    {
      "id": "factory-method",
      "name": "Factory Method",
      "fit": "adapted",
      "sources": [
        "factory-contract",
        "factory-product"
      ]
    },
    {
      "id": "abstract-factory",
      "name": "Abstract Factory",
      "fit": "adapted",
      "sources": [
        "family-contract",
        "family-tx",
        "family-stmt"
      ]
    },
    {
      "id": "builder",
      "name": "Builder",
      "fit": "direct",
      "sources": [
        "builder-steps",
        "builder-name",
        "builder-run"
      ]
    },
    {
      "id": "prototype",
      "name": "Prototype",
      "fit": "direct",
      "sources": [
        "prototype"
      ]
    },
    {
      "id": "singleton",
      "name": "Singleton",
      "fit": "related",
      "sources": [
        "singleton",
        "once"
      ]
    },
    {
      "id": "adapter",
      "name": "Adapter",
      "fit": "direct",
      "sources": [
        "adapter"
      ]
    },
    {
      "id": "bridge",
      "name": "Bridge",
      "fit": "adapted",
      "sources": [
        "bridge-api",
        "bridge-core",
        "bridge-call"
      ]
    },
    {
      "id": "composite",
      "name": "Composite",
      "fit": "direct",
      "sources": [
        "composite"
      ]
    },
    {
      "id": "decorator",
      "name": "Decorator",
      "fit": "direct",
      "sources": [
        "decorator"
      ]
    },
    {
      "id": "facade",
      "name": "Facade",
      "fit": "adapted",
      "sources": [
        "facade"
      ]
    },
    {
      "id": "flyweight",
      "name": "Flyweight",
      "fit": "direct",
      "sources": [
        "flyweight"
      ]
    },
    {
      "id": "proxy",
      "name": "Proxy",
      "fit": "direct",
      "sources": [
        "proxy-handler",
        "proxy-forward"
      ]
    },
    {
      "id": "chain-of-responsibility",
      "name": "Chain of Responsibility",
      "fit": "adapted",
      "sources": [
        "chain"
      ]
    },
    {
      "id": "command",
      "name": "Command",
      "fit": "direct",
      "sources": [
        "command"
      ]
    },
    {
      "id": "interpreter",
      "name": "Interpreter",
      "fit": "adapted",
      "sources": [
        "interpreter",
        "interpreter-node"
      ]
    },
    {
      "id": "iterator",
      "name": "Iterator",
      "fit": "adapted",
      "sources": [
        "iterator",
        "iterator-go"
      ]
    },
    {
      "id": "mediator",
      "name": "Mediator",
      "fit": "related",
      "sources": [
        "mediator"
      ]
    },
    {
      "id": "memento",
      "name": "Memento",
      "fit": "adapted",
      "sources": [
        "memento-api",
        "memento-journal"
      ]
    },
    {
      "id": "observer",
      "name": "Observer",
      "fit": "direct",
      "sources": [
        "observer-register",
        "observer-notify"
      ]
    },
    {
      "id": "state",
      "name": "State",
      "fit": "adapted",
      "sources": [
        "state-type",
        "state-drive",
        "state-transition"
      ]
    },
    {
      "id": "strategy",
      "name": "Strategy",
      "fit": "direct",
      "sources": [
        "strategy",
        "strategy-call"
      ]
    },
    {
      "id": "template-method",
      "name": "Template Method",
      "fit": "adapted",
      "sources": [
        "skeleton"
      ]
    },
    {
      "id": "visitor",
      "name": "Visitor",
      "fit": "adapted",
      "sources": [
        "visitor",
        "visitor-leave"
      ]
    }
  ]
}
