Lumaktaw papunta sa content

Para sa mga user ng Gemini CLI

Sinasabi ng GEMINI.md kay Gemini ang mga rules mo.
Hindi ang code mo.

Itinatakda ng GEMINI.md ang working context. Hinahayaan ng MCP si Gemini na abutin ang mga tool. Ang Maguyva ang MCP server na nagbibigay kay Gemini ng queryable na mapa ng repo mo, kaya ang unang edit ay hindi isang hula sa file structure.

May Free tier: 3 repository, Hanggang 50K na naka-index na linya ng repo, walang card.

Ang GEMINI.md ang context. Ang MCP ang channel. Ang Maguyva ang mapa.

Ang layered stack

Apat na ideya. Isang trabaho ang ginagawa ng bawat isa.

// ang context

GEMINI.md

Kung paano dapat kumilos si Gemini sa repo na ito.

// ang transport

MCP

Kung paano inaabot ni Gemini ang mga external tool at context.

// ang codebase

Maguyva

Ang MCP server na nagbabalik ng naka-ground na repo facts.

// sino ang nagbabayad

Workspaces, hindi seats

Hindi nagbabayad ng seats ang mga agent. Tingnan ang pricing

Ang GEMINI.md ay isang working context. Gamitin ito.

Ang mga persistent na instruction ay nabibilang sa GEMINI.md. Ito ang tamang lugar para sa:

  • Build, test, at lint commands na dapat patakbuhin ni Gemini.
  • Mga guardrail na “laging gawin ang X / huwag kailanman gawin ang Y” na naka-scope sa isang directory.
  • Naming conventions at refactor preferences.
  • Mga pointer sa canonical decision logs at architecture notes.

Panatilihing maikli. I-scope ito. I-commit ito.

Pero ang GEMINI.md ay hindi kailanman idinisenyo para maging queryable na index ng bawat symbol, file, at call site sa repo mo.

Kung saan naubos ang GEMINI.md mag-isa

Apat na failure mode, isa kada card.

// hindi index ang context

Ang pagsasabi kay Gemini kung paano magtrabaho ay hindi nagsasabi sa kanya kung ano ang umiiral. Ang unang edit sa isang hindi pamilyar na package ay isang hula tungkol sa file paths at function names. Hindi kayang ilista ng GEMINI.md ang bawat symbol, at hindi mo naman gugustuhin iyon.

// nagd-drift ang doc mula sa code

Tama ang isang GEMINI.md block na naglalarawan sa queue topology mo hanggang may magpakilala ng bagong consumer. Ang code na ngayon ang source of truth at lipas na nang tiwala ang doc. Ang mali ang binabasa ni Gemini.

// isang graph problem ang rename

“Ano ang tumutukoy sa class na ito?” ay hindi kayang sagutin ng isang markdown file. Mag-grep-and-pray si Gemini sa buong monorepo o hihilingin sa iyong i-paste ang mga call site sa chat.

// hindi libre ang context window

Hindi pareho ang malaking window sa isang queryable na index. Ang pagla-load ng GEMINI.md hanggang “sapat na” ang alam ni Gemini ay ipinagpapalit pa rin ang reasoning budget para sa static na context volume.

Paano magkasya ang tatlong layer

Nag-iisip na sa ganitong hugis ang mga user ng Gemini. Dapat gawing malinaw ito ng pahina.

GEMINI.md

ang context

kung paano kumikilos si Gemini

MCP

ang channel

kung paano ito umaabot

Maguyva

mga fact ng codebase

kung ano ang nakikita nito

  • GEMINI.md kung paano kumikilos si Gemini sa repo na ito.
  • MCP kung paano inaabot ni Gemini ang mga tool at context. (spec)
  • Maguyva kung ano ang nakikita ni Gemini kapag nagtatanong siya sa codebase. Ibinabalik ang semantic, AST, graph, at text search na may file paths at line numbers.

Sinasabi ng GEMINI.md kay Gemini kung paano magtrabaho.

Binibigyan ng Maguyva si Gemini ng isang bagay na pagbabatayan.

Tatlong workflow

Gemini-specific. Naka-ground laban sa aktwal na call graph, hindi sa grep ni Gemini.

// workflow 01

Palitan ang pangalan ng isang shared class, hanapin muna ang bawat dependent

gemini> rename PaymentClient → BillingClient

graph::callers(PaymentClient)            12 references across 7 packages
graph::importers(src/payments/client.ts)  9 importers
graph::extends(PaymentClient)             2 subclasses (RetryClient, MockClient)

 Nagmumungkahi si Gemini ng 21-edit na migration na may file list na inline.
[exit 0]

Tinatanong ni Gemini ang Maguyva tungkol sa mga dependent bago siya magsimulang mag-edit. Bumabalik ang migration list na naka-ground sa aktwal na graph, hindi sa alaala ni Gemini.

// workflow 02

Hanapin ang tunay na implementation, hindi ang test stub

gemini> paano hinahandle ng normalizePhoneNumber ang E.164?

semantic::query("normalize phone E.164")
  src/util/phone.ts:88   normalizePhoneNumber()   ← real impl
  test/util/phone.spec.ts:14  jest.mock(...)      ← stub
[exit 0]

Nagsisinungaling ang mga pangalan. Nagbabalot ang mocks sa tunay na code. Inilalagay ng Maguyva ang tunay na implementation sa itaas ng test mock.

// workflow 03

Suriin ang saklaw ng epekto bago ang isang refactor

gemini> ano ang tumatawag sa QueueDispatcher.publish?

graph::callers(QueueDispatcher.publish)
  3 in src/billing/*    1 in src/audit/*    1 in src/notifications/*
[exit 0]

Lumilitaw ang cross-package na call-site nang inline. Naka-ground ang diff laban sa tunay na importer, hindi sa grep ni Gemini.

Setup sa Gemini CLI

Tatlong hakbang. Free tier: 3 repository, Hanggang 50K na naka-index na linya ng repo, walang card.

  1. // step 01

    I-index ang isang repo sa maguyva.ai

    Pumili ng isa na kilala mo nang husto, para kaya mong i-verify ang mga sagot.

  2. // step 02

    Idagdag ang Maguyva bilang MCP server sa settings ng Gemini CLI mo

    // ~/.gemini/settings.json
    {
      "mcpServers": {
        "maguyva": {
          "httpUrl": "https://maguyva.tools/mcp",
          "headers": {
            "Authorization": "Bearer <your-key>"
          }
        }
      }
    }
  3. // step 03

    Magtanong ng isang tanong na alam mo na ang sagot

    Huwag magsimula sa buong kompanya mo. Magsimula sa isang repo at isang verifiable na tanong.