Skip to content

Commit afed1c2

Browse files
committed
update AI instructions to use serena
1 parent a7738a3 commit afed1c2

File tree

7 files changed

+291
-118
lines changed

7 files changed

+291
-118
lines changed

.github/copilot-instructions.md

Lines changed: 153 additions & 118 deletions
Large diffs are not rendered by default.

.serena/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/cache

.serena/memories/code_style.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Code Style & Conventions
2+
3+
- **Formatting**: Enforced by `hatch fmt`.
4+
- **Type Hints**: Required, checked by `hatch run python:type_check`.
5+
- **JS Linting**: Enforced by `hatch run javascript:check`.
6+
- **Tests**: All tests must pass. Failures not allowed.
7+
- **Documentation**: Must be updated with code changes.
8+
- **Changelog**: Required for significant changes.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Development Workflow
2+
3+
1. **Bootstrap**: Install Python 3.9+, Hatch, Bun.
4+
2. **Changes**: Modify code.
5+
3. **Format**: `hatch fmt`.
6+
4. **Type Check**: `hatch run python:type_check`.
7+
5. **JS Check**: `hatch run javascript:check` (if JS changed).
8+
6. **Test**: `hatch test`.
9+
7. **Validate**: Manual component/server tests.
10+
8. **Build JS**: `hatch run javascript:build` (if JS changed).
11+
9. **Docs**: Update if Python source changed.
12+
10. **Changelog**: Add entry in `docs/source/about/changelog.rst`.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# ReactPy Overview
2+
3+
## Purpose
4+
ReactPy builds UIs in Python without JS, using React-like components and a Python-to-JS bridge.
5+
6+
## Tech Stack
7+
- **Python**: 3.9+
8+
- **Build**: Hatch
9+
- **JS Runtime**: Bun
10+
- **Deps**: fastjsonschema, requests, lxml, anyio
11+
12+
## Structure
13+
- `src/reactpy/`: Python source (core, web, executors).
14+
- `src/js/`: JS packages (client, app).
15+
- `tests/`: Test suite.
16+
- `docs/`: Documentation.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Suggested Commands (Hatch)
2+
3+
## Python
4+
- **Test**: `hatch test` (All must pass)
5+
- **Coverage**: `hatch test --cover`
6+
- **Format**: `hatch fmt`
7+
- **Check Format**: `hatch fmt --check`
8+
- **Type Check**: `hatch run python:type_check`
9+
- **Build**: `hatch build --clean`
10+
11+
## JavaScript
12+
- **Build**: `hatch run javascript:build` (Rebuild after JS changes)
13+
- **Check**: `hatch run javascript:check`
14+
- **Fix**: `hatch run javascript:fix`
15+
16+
## Shell
17+
- **Dev Shell**: `hatch shell`

.serena/project.yml

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
# list of languages for which language servers are started; choose from:
2+
# al bash clojure cpp csharp csharp_omnisharp
3+
# dart elixir elm erlang fortran go
4+
# haskell java julia kotlin lua markdown
5+
# nix perl php python python_jedi r
6+
# rego ruby ruby_solargraph rust scala swift
7+
# terraform typescript typescript_vts yaml zig
8+
# Note:
9+
# - For C, use cpp
10+
# - For JavaScript, use typescript
11+
# Special requirements:
12+
# - csharp: Requires the presence of a .sln file in the project folder.
13+
# When using multiple languages, the first language server that supports a given file will be used for that file.
14+
# The first language is the default language and the respective language server will be used as a fallback.
15+
# Note that when using the JetBrains backend, language servers are not used and this list is correspondingly ignored.
16+
languages:
17+
- python
18+
19+
# the encoding used by text files in the project
20+
# For a list of possible encodings, see https://docs.python.org/3.11/library/codecs.html#standard-encodings
21+
encoding: "utf-8"
22+
23+
# whether to use the project's gitignore file to ignore files
24+
# Added on 2025-04-07
25+
ignore_all_files_in_gitignore: true
26+
27+
# list of additional paths to ignore
28+
# same syntax as gitignore, so you can use * and **
29+
# Was previously called `ignored_dirs`, please update your config if you are using that.
30+
# Added (renamed) on 2025-04-07
31+
ignored_paths: []
32+
33+
# whether the project is in read-only mode
34+
# If set to true, all editing tools will be disabled and attempts to use them will result in an error
35+
# Added on 2025-04-18
36+
read_only: false
37+
38+
# list of tool names to exclude. We recommend not excluding any tools, see the readme for more details.
39+
# Below is the complete list of tools for convenience.
40+
# To make sure you have the latest list of tools, and to view their descriptions,
41+
# execute `uv run scripts/print_tool_overview.py`.
42+
#
43+
# * `activate_project`: Activates a project by name.
44+
# * `check_onboarding_performed`: Checks whether project onboarding was already performed.
45+
# * `create_text_file`: Creates/overwrites a file in the project directory.
46+
# * `delete_lines`: Deletes a range of lines within a file.
47+
# * `delete_memory`: Deletes a memory from Serena's project-specific memory store.
48+
# * `execute_shell_command`: Executes a shell command.
49+
# * `find_referencing_code_snippets`: Finds code snippets in which the symbol at the given location is referenced.
50+
# * `find_referencing_symbols`: Finds symbols that reference the symbol at the given location (optionally filtered by type).
51+
# * `find_symbol`: Performs a global (or local) search for symbols with/containing a given name/substring (optionally filtered by type).
52+
# * `get_current_config`: Prints the current configuration of the agent, including the active and available projects, tools, contexts, and modes.
53+
# * `get_symbols_overview`: Gets an overview of the top-level symbols defined in a given file.
54+
# * `initial_instructions`: Gets the initial instructions for the current project.
55+
# Should only be used in settings where the system prompt cannot be set,
56+
# e.g. in clients you have no control over, like Claude Desktop.
57+
# * `insert_after_symbol`: Inserts content after the end of the definition of a given symbol.
58+
# * `insert_at_line`: Inserts content at a given line in a file.
59+
# * `insert_before_symbol`: Inserts content before the beginning of the definition of a given symbol.
60+
# * `list_dir`: Lists files and directories in the given directory (optionally with recursion).
61+
# * `list_memories`: Lists memories in Serena's project-specific memory store.
62+
# * `onboarding`: Performs onboarding (identifying the project structure and essential tasks, e.g. for testing or building).
63+
# * `prepare_for_new_conversation`: Provides instructions for preparing for a new conversation (in order to continue with the necessary context).
64+
# * `read_file`: Reads a file within the project directory.
65+
# * `read_memory`: Reads the memory with the given name from Serena's project-specific memory store.
66+
# * `remove_project`: Removes a project from the Serena configuration.
67+
# * `replace_lines`: Replaces a range of lines within a file with new content.
68+
# * `replace_symbol_body`: Replaces the full definition of a symbol.
69+
# * `restart_language_server`: Restarts the language server, may be necessary when edits not through Serena happen.
70+
# * `search_for_pattern`: Performs a search for a pattern in the project.
71+
# * `summarize_changes`: Provides instructions for summarizing the changes made to the codebase.
72+
# * `switch_modes`: Activates modes by providing a list of their names
73+
# * `think_about_collected_information`: Thinking tool for pondering the completeness of collected information.
74+
# * `think_about_task_adherence`: Thinking tool for determining whether the agent is still on track with the current task.
75+
# * `think_about_whether_you_are_done`: Thinking tool for determining whether the task is truly completed.
76+
# * `write_memory`: Writes a named memory (for future reference) to Serena's project-specific memory store.
77+
excluded_tools: []
78+
79+
# initial prompt for the project. It will always be given to the LLM upon activating the project
80+
# (contrary to the memories, which are loaded on demand).
81+
initial_prompt: ""
82+
83+
project_name: "reactpy"
84+
included_optional_tools: []

0 commit comments

Comments
 (0)