Skip to content

Added tinkerpop-dev skills based on Agent Skills standard#3380

Open
spmallette wants to merge 1 commit intomasterfrom
agent-skills
Open

Added tinkerpop-dev skills based on Agent Skills standard#3380
spmallette wants to merge 1 commit intomasterfrom
agent-skills

Conversation

@spmallette
Copy link
Copy Markdown
Contributor

Skill written following https://agentskills.io/ - included agent-setup.sh script that will help build shims as needed to common agents, for those that won't look in .skills by default (most won't it seems). I was able to test this with claude, kiro and junie and they all work nicely.

VOTE +1

Included a agent-setup.sh script that will help build shims as needed to common agents, for those that won't look in .skills by default.
echo "Core prerequisites:"
if command -v java &>/dev/null; then
java_version=$(java -version 2>&1 | head -1 | sed 's/.*"\(.*\)".*/\1/' | cut -d. -f1)
if [[ "$java_version" -ge 11 ]]; then
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: We might want to fail with java versions above 17 as well for the time being.

# --- Python ---
if command -v python3 &>/dev/null; then
py_version=$(python3 --version 2>&1 | grep -oE '[0-9]+\.[0-9]+')
ok "Python $py_version (3.9+ recommended for gremlin-python local dev)"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: We are now on python 3.10

# --- Node.js ---
if command -v node &>/dev/null; then
node_version=$(node --version 2>/dev/null | sed 's/v//')
ok "Node.js $node_version (20+ recommended for gremlin-js local dev)"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: We require node 22+

# --- Go ---
if command -v go &>/dev/null; then
go_version=$(go version 2>/dev/null | grep -oE '[0-9]+\.[0-9]+(\.[0-9]+)?')
ok "Go $go_version (1.22+ recommended for gremlin-go local dev)"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: we're up to go 1.25 now

Comment on lines +42 to +46
- **Python 3.9+** — optional for local development; Docker handles test execution.
- **Node.js 20+ / npm 10+** — optional; Maven downloads a local copy via `frontend-maven-plugin`.
Consider [nvm](https://github.com/nvm-sh/nvm) for version management.
- **.NET SDK 8.0+** — optional; Docker handles test execution.
- **Go 1.22+** — optional; Docker handles test execution.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Python 3.9+** — optional for local development; Docker handles test execution.
- **Node.js 20+ / npm 10+** — optional; Maven downloads a local copy via `frontend-maven-plugin`.
Consider [nvm](https://github.com/nvm-sh/nvm) for version management.
- **.NET SDK 8.0+** — optional; Docker handles test execution.
- **Go 1.22+** — optional; Docker handles test execution.
- **Python 3.10+** — optional for local development; Docker handles test execution.
- **Node.js 22+ / npm 10+** — optional; Maven downloads a local copy via `frontend-maven-plugin`.
Consider [nvm](https://github.com/nvm-sh/nvm) for version management.
- **.NET SDK 8.0+** — optional; Docker handles test execution.
- **Go 1.25+** — optional; Docker handles test execution.

Comment on lines +31 to +33
mvn clean install -pl tinkergraph-gremlin
mvn clean install -pl gremlin-core
mvn clean install -pl gremlin-server
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
mvn clean install -pl tinkergraph-gremlin
mvn clean install -pl gremlin-core
mvn clean install -pl gremlin-server
mvn clean install -pl :tinkergraph-gremlin
mvn clean install -pl :gremlin-core
mvn clean install -pl :gremlin-server


Build a module and its dependencies:
```bash
mvn clean install -pl gremlin-server -am
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
mvn clean install -pl gremlin-server -am
mvn clean install -pl :gremlin-server -am


Run gremlin-server integration tests:
```bash
mvn clean install -pl gremlin-server -DskipIntegrationTests=false
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
mvn clean install -pl gremlin-server -DskipIntegrationTests=false
mvn clean install -pl :gremlin-server -DskipIntegrationTests=false


Specify a test seed for reproducible `Random` behavior:
```bash
mvn clean install -DtestSeed
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
mvn clean install -DtestSeed
mvn clean install -DtestSeed=<seed-value>


Build Docker images of Gremlin Server and Console:
```bash
mvn clean install -pl gremlin-server,gremlin-console -DdockerImages
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
mvn clean install -pl gremlin-server,gremlin-console -DdockerImages
mvn clean install -pl :gremlin-server,:gremlin-console -DdockerImages

Comment on lines +98 to +100
- Python: `mvn clean install -Pglv-python -pl gremlin-python`
- .NET: `mvn clean install -pl gremlin-dotnet,gremlin-dotnet-source,gremlin-dotnet-tests`
- Go: `mvn clean install -Pglv-go -pl gremlin-go`
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Python: `mvn clean install -Pglv-python -pl gremlin-python`
- .NET: `mvn clean install -pl gremlin-dotnet,gremlin-dotnet-source,gremlin-dotnet-tests`
- Go: `mvn clean install -Pglv-go -pl gremlin-go`
- Python: `mvn clean install -Pglv-python -pl :gremlin-python`
- .NET: `mvn clean install -Pgremlin-dotnet -pl :gremlin-dotnet,:gremlin-dotnet-source,:gremlin-dotnet-tests`
- Go: `mvn clean install -Pglv-go -pl :gremlin-go`


Documentation generation requires:
- Java 11 (specifically for doc generation)
- Hadoop 3.3.x in pseudo-distributed mode
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should probably be hadoop 3.4.x, although there are currently additional dependency conflicts with spark and hadoop as I understand it in master, so this will likely need further refinement soon.


Use Java 11 for JavaDoc generation.

## Publishing
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure it's advisable to instruct agents how to publish the docs and site. I think this at least warrants additional warnings instructing never to publish unless specifically requested.

Also, these publishing scripts likely won't work with agents regardless in their current form as they require the user to enter a password.

configure and start all required dependencies, such as Hadoop.

By default, this script will run every module in the project. However, if you are planning on working on just a
By default, this script will run every module in the project. However, if you are planning on working on just
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
By default, this script will run every module in the project. However, if you are planning on working on just
By default, this script will run every module in the project. However, if you are planning on working on just a

Comment on lines +162 to +168
echo " claude .claude/skills/$SKILL_NAME/ -> symlink to $SKILL_DIR"
echo " copilot .github/skills/$SKILL_NAME/ -> symlink to $SKILL_DIR"
echo " .agents/skills/$SKILL_NAME/ -> symlink to $SKILL_DIR"
echo " cursor .cursor/skills/$SKILL_NAME/ -> symlink to $SKILL_DIR"
echo " codex .codex/skills/$SKILL_NAME/ -> symlink to $SKILL_DIR"
echo " junie .junie/skills/$SKILL_NAME/ -> symlink to $SKILL_DIR"
echo " kiro .kiro/skills/$SKILL_NAME/ -> copy of $SKILL_DIR (re-run to sync)"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we go ahead and proactively exclude these paths from the source-release?

@Cole-Greer
Copy link
Copy Markdown
Contributor

Overall I think the migration from AGENTS.md to skills is a good one. One general concern I have here is the proliferation of runtime version references in so many additional places. We already miss some references when bumping runtimes too often, I would really like to progress towards having a single source of truth for all current runtime requirements. I don't think that's necessarily a blocking concern for this PR but it does worry me.

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.

2 participants