← 返回 Skill 列表
extension
分类: 开发与工程API Key 暂未确认

OceanBase Contest Helper

OceanBase 6th contest helper for seekdb, PowerContext, and Skill packaging

person作者: SamsaraurhubModelScope
<!-- OB-S:i3zVIRBkmA2a-IlqwtSOhw -->

OceanBase Contest Helper (seekdb / PowerContext)

Help an agent complete OceanBase 6th Developer Competition ecosystem tasks around oceanbase/seekdb and oceanbase/powercontext, plus publishing an Agent Skill to ModelScope Skills Center.

Official train portal: https://open.oceanbase.com/train

When to use

  • User is working on OceanBase contest train questions (Fork / deploy UUID / PR / CSV / ModelScope Skill).
  • Need to deploy seekdb and read run/telemetry.json → content.id.
  • Need to fix a GitHub issue labeled 2026-competition and open a PR to oceanbase/seekdb.
  • Need to implement a PowerContext CSV row-level collector and pass local tests.
  • Need to package / publish a Skill zip for ModelScope Skills Center (contest share task).

When not to use

  • General OceanBase DBA work unrelated to the contest.
  • Non-contest ModelScope Hub model/dataset upload (use ms-hub instead).
  • Booking / shopping / unrelated product workflows.

Prerequisites

| Need | Notes | |------|--------| | GitHub account | Fork + PR; registration URL on open.oceanbase.com must point at the public fork | | Docker (for UUID task) | Official image oceanbase/seekdb | | ModelScope account | Only for the Skill upload/share train item | | Contest login | open.oceanbase.com (often SMS); Yuque tutorials may be separate login |

Always keep the contest verification line (team / official string from the train page) in README or PR body when the question requires it. Never invent a UUID or PR URL.


Task map (typical scoring)

| Track | Typical ask | Deliverable for 提测 | |-------|-------------|----------------------| | seekdb Fork | Public fork of seekdb | Registration GitHub URL = fork | | seekdb deploy UUID | Run seekdb, read telemetry | UUID string (content.id) | | seekdb PR | Fix 2026-competition issue | PR URL to oceanbase/seekdb | | PowerContext Fork | Public fork | Registration URL | | PowerContext CSV | Row-level collector | Passing tests + fork commit | | ModelScope Skill | Upload & share Skill | Skill page URL or @owner/name |

Exact questionIds and point values change by year; read the live train page before submitting.


1. seekdb: public fork + registration

  1. Fork https://github.com/oceanbase/seekdb to the contestant's GitHub (must be public).
  2. On open.oceanbase.com train → seekdb intro / fork question → set 报名仓 / registration address to https://github.com/<user>/seekdb.
  3. If the fork was private scaffolding first, convert or replace with a real public fork before PR/UUID scoring.
  4. Put any required verification line into the fork README only when the question asks for it; do not leave contest-only README junk on branches destined for upstream PRs.

2. seekdb: deploy and extract telemetry UUID

Goal: obtain content.id from run/telemetry.json after a healthy start.

Docker (recommended)

docker pull oceanbase/seekdb:latest
docker run -d --name seekdb \
  -p 2881:2881 -p 2886:2886 \
  -e MEMORY_LIMIT=2G -e CPU_COUNT=2 \
  -e LOG_DISK_SIZE=2G -e DATAFILE_SIZE=2G \
  oceanbase/seekdb:latest

Wait until SQL accepts connections:

mysql -h127.0.0.1 -P2881 -uroot -e "SELECT 1; SELECT VERSION();"

Locate telemetry

In current images the data dir inside the container is often /var/lib/seekdb (not /var/lib/oceanbase). Copy out:

docker cp seekdb:/var/lib/seekdb/run/telemetry.json ./telemetry.json
# or: docker exec seekdb cat /var/lib/seekdb/run/telemetry.json

Parse UUID (keep hyphens):

python3 -c "import json; print(json.load(open('telemetry.json'))['content']['id'])"

Submit that UUID on the train UUID question. Platform sync can lag (~30–60 min); if 提测 says data not found, keep the same container running and retry later with the same UUID.

Leave TELEMETRY_ENABLED at default (on) unless docs say otherwise.

3. seekdb: fix a 2026-competition issue + upstream PR

  1. List open issues on oceanbase/seekdb with label 2026-competition (prefer good first issue / clear repro).
  2. Reproduce with the SQL or steps in the issue.
  3. Implement a minimal fix on a clean branch based on upstream master (cherry-pick only the fix; do not carry fork-only README verification commits).
  4. Open PR against oceanbase/seekdb (not only the personal fork).
  5. PR body should include: issue link, root cause, fix summary, test/repro steps, and any contest verification line if required by the train question.
  6. Registration source must be the public fork; 提测 field is the upstream PR URL.

Guardrails:

  • Do not force-push to upstream.
  • Do not bundle unrelated contest scaffolding into the upstream PR.
  • One logical bugfix per PR unless the issue asks otherwise.

4. PowerContext: CSV row-level collector (outline)

  1. Fork https://github.com/oceanbase/powercontext (public).
  2. Read contest Yuque / question brief for the CSV task (test-csv or equivalent).
  3. Implement the collector so each CSV row becomes the expected record shape; follow existing package layout and tests in the repo.
  4. Run the project’s CSV tests locally until green; push to the registered fork.
  5. Submit per train instructions (repo URL / commit as required).

If the brief names a specific interface or golden file, treat those as source of truth over this outline.

5. ModelScope Skills Center: package and publish

Contest packaging rules (align with ModelScope Skills Center):

  • Build a zip whose root contains SKILL.md (exactly one SKILL.md).
  • Frontmatter must include at least name and description (CLI publish also expects version).
  • name: lowercase letters, digits, hyphens; match the skill folder name.
  • Zip ≤ 5 MB. Content must be a real Agent Skill (when-to-use + steps), not an empty stub.

Package locally

cd /path/to/ob-contest-helper   # directory that contains SKILL.md
zip -r ../ob-contest-helper.zip SKILL.md references examples
# Verify SKILL.md is at archive root:
unzip -l ../ob-contest-helper.zip | head

Publish (UI)

  1. Open https://www.modelscope.cn/skills (Skills Center).
  2. Sign in → create / upload Skill → choose the zip.
  3. Fill display name, description, category (e.g. developer-tools), license, tags.
  4. Create → copy the Skill page URL or id @<owner>/<skill_name>.
  5. Paste that URL/id into the OceanBase train 提测 field for the ModelScope Skill question.

Publish (OpenAPI, optional)

# 1) Upload zip → data.id
curl -X POST "$MODELSCOPE_ENDPOINT/openapi/v1/files/upload" \
  -H "Authorization: Bearer $MODELSCOPE_API_KEY" \
  -F "file=@ob-contest-helper.zip" -F "type=skill"

# 2) Create skill (skill_file = data.id from step 1)
curl -X POST "$MODELSCOPE_ENDPOINT/openapi/v1/skills" \
  -H "Authorization: Bearer $MODELSCOPE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "owner": "<your-username>",
    "skill_name": "ob-contest-helper",
    "display_name": "OceanBase Contest Helper",
    "description": "seekdb / PowerContext contest workflows",
    "skill_file": "<upload-data-id>",
    "category": "developer-tools",
    "license": "MIT License",
    "tags": ["oceanbase", "seekdb", "contest"]
  }'

Default endpoint: https://modelscope.cn. Token: https://modelscope.cn/my/myaccesstoken

6. Agent workflow checklist

Copy and tick while working:

[ ] Read live train question text (points, fields, Yuque links)
[ ] Registration GitHub URL = public fork used for work
[ ] seekdb running; UUID from telemetry.json content.id
[ ] Upstream PR (not fork-only) for competition issue fix
[ ] PowerContext tests green before 提测
[ ] Skill zip has SKILL.md at root; published; URL saved for 提测
[ ] Do not submit invented UUIDs / PR links / Skill ids

References in this package

  • references/contest-checklist.md — condensed checklist and common failure modes
  • references/telemetry-uuid.md — UUID extraction detail
  • examples/sample-pr-body.md — PR body template for competition fixes

Related links

  • seekdb: https://github.com/oceanbase/seekdb
  • PowerContext: https://github.com/oceanbase/powercontext
  • Train: https://open.oceanbase.com/train
  • Skills Center: https://www.modelscope.cn/skills
  • Agent Skills spec: https://agentskills.io/specification