Skip to content

Commit c159b73

Browse files
author
Joongheon Park
committed
docs: update README and issue templates for clarity and language support
- Translated README content to Korean, enhancing accessibility for Korean-speaking users. - Updated key features and installation instructions in the README to reflect recent changes. - Revised issue templates to specify "Act - AX Template" for clarity in feature requests and bug reports. - Added additional context in issue templates to guide users in providing relevant information.
1 parent 0c5aae2 commit c159b73

8 files changed

Lines changed: 203 additions & 49 deletions

File tree

.github/ISSUE_TEMPLATE/backlog-en.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ body:
77
value: |
88
Thank you for contributing ideas to improve Act Operator!
99

10-
Use this form to propose a feature or enhancement for Act Operator (CLI for bootstrapping LangGraph-based “Act” blueprints).
10+
Use this form to propose a feature or enhancement for Act Operator (CLI for bootstrapping LangGraph-based “Act - AX Template” blueprints).
1111
For general questions or discussion, please use our Discord.
1212

1313
Before filing, please check the following resources to see if a similar request already exists:

.github/ISSUE_TEMPLATE/backlog-kr.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ body:
77
value: |
88
Act Operator 개선 아이디어를 공유해주셔서 감사합니다!
99

10-
이 폼은 Act Operator( LangGraph 기반 “Act” 블루프린트를 스캐폴딩하는 CLI )의 **기능 제안/개선 요청**을 위한 것입니다.
10+
이 폼은 Act Operator( LangGraph 기반 “Act - AX Template” 블루프린트를 스캐폴딩하는 CLI )의 **기능 제안/개선 요청**을 위한 것입니다.
1111
일반 질문이나 논의는 디스코드를 이용해주세요.
1212

1313
제출 전, 유사한 요청이 이미 있는지 아래 리소스를 확인해주세요:
@@ -50,6 +50,7 @@ body:
5050
placeholder: |
5151
* 스캐폴딩 시 ..., ...이 필요합니다.
5252
* 캐스트 추가 시 ..., ...가 있으면 좋겠습니다.
53+
* ...에 관련된 Claude Skill / Cursor Rule 등이 있으면 좋겠습니다.
5354
- type: textarea
5455
id: proposal
5556
validations:

.github/ISSUE_TEMPLATE/bug-report-en.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ body:
77
value: |
88
Thank you for taking the time to file a bug report.
99

10-
Use this to report BUGS in Act Operator (CLI for bootstrapping LangGraph-based “Act” blueprints).
10+
Use this to report BUGS in Act Operator (CLI for bootstrapping LangGraph-based “Act - AX Template” blueprints).
1111
For usage questions, feature requests and general design questions, please use our Discord.
1212

1313
Before filing, please check the following resources to see if your issue has already been reported or solved:

.github/ISSUE_TEMPLATE/bug-report-kr.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ body:
77
value: |
88
버그 리포트를 작성해주셔서 감사합니다.
99

10-
이 폼은 Act Operator( LangGraph 기반 “Act” 블루프린트를 스캐폴딩하는 CLI )의 **버그**를 신고하기 위한 것입니다.
10+
이 폼은 Act Operator( LangGraph 기반 “Act - AX Template” 블루프린트를 스캐폴딩하는 CLI )의 **버그**를 신고하기 위한 것입니다.
1111
사용 방법 문의, 기능 요청, 일반적인 설계 질문은 디스코드를 이용해주세요.
1212

1313
버그 등록 전, 아래 리소스를 확인하여 이미 보고되었거나 해결된 이슈인지 확인해주세요:

README.md

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,42 @@
11
# Act Operator
22

3-
Act Operator is Proact0’s CLI for bootstrapping LangGraph-based “Act” blueprints with `cookiecutter`. The tool exposes `act new` to build an Act project and `act cast` to scaffold additional casts inside an existing blueprint.
3+
Act Operator는 `cookiecutter`LangGraph 기반의 “Act - AX Template” 블루프린트를 신속히 부트스트랩하기 위한 Proact0의 CLI입니다. 이 도구는 Act 프로젝트를 생성하는 `act new`와, 기존 블루프린트에 추가 캐스트를 스캐폴딩하는 `act cast` 명령을 제공합니다.
44

5-
## Key Features
5+
## 주요 기능
66

7-
- Typer-powered CLI exposed as `act`
8-
- `cookiecutter` rendering with slug/snake/title variants for Act and Cast names
9-
- Safe directory checks to avoid overwriting non-empty folders
10-
- Built-in command to add extra casts to an existing Act project
11-
- Fully tested with `pytest`
7+
- Typer로 구현된 CLI로 `act` 명령 제공
8+
- Act/Cast 이름에 대해 slug/snake/title 변형을 지원하는 `cookiecutter` 렌더링
9+
- 비어 있지 않은 폴더를 덮어쓰지 않도록 하는 안전한 디렉터리 검사
10+
- 기존 Act 프로젝트에 추가 캐스트를 손쉽게 추가하는 내장 명령
11+
- `pytest`로 충분히 검증된 테스트
1212

13-
## Installation
13+
## 설치
1414

1515
```bash
1616
uv add act-operator
1717
```
1818

19-
Act Operator requires Python 3.12 or newer. The project ships with `pyproject.toml` so `uv` manages dependencies reproducibly.
19+
Act Operator는 Python 3.12 이상을 요구합니다. 프로젝트에는 `pyproject.toml`이 포함되어 있어 `uv`가 의존성을 재현 가능하게 관리합니다.
2020

21-
## Usage
21+
## 사용법
2222

23-
### Create a new Act project
23+
### Act 프로젝트 생성
2424

2525
```bash
2626
uv run act new --path ./my-act --act-name "My Act" --cast-name "Main Cast"
2727
```
2828

29-
You can omit any option to trigger interactive prompts. When `--path` points to a custom directory, the Act name defaults to that directory name.
29+
어떤 옵션이든 생략하면 대화형 프롬프트가 표시됩니다. `--path`가 사용자 지정 디렉터리를 가리키는 경우, Act 이름은 기본적으로 해당 디렉터리 이름으로 설정됩니다.
3030

31-
### Add an additional cast
31+
### 추가 캐스트 추가
3232

3333
```bash
3434
uv run act cast --path ./my-act --cast-name "Sub Cast"
3535
```
3636

37-
The command validates that `--path` is an Act project (presence of `pyproject.toml`, `langgraph.json`, `casts/base_node.py`, and `casts/base_graph.py`) before rendering the new cast.
37+
새 캐스트를 렌더링하기 전에, 명령은 `--path`Act 프로젝트인지 검증합니다(`pyproject.toml`, `langgraph.json`, `casts/base_node.py`, `casts/base_graph.py`의 존재 확인).
3838

39-
### Resulting layout
39+
### 생성 결과 구조
4040

4141
```
4242
my-act/
@@ -60,7 +60,7 @@ my-act/
6060
└── graph.py
6161
```
6262

63-
## Development with uv
63+
## uv로 개발하기
6464

6565
```bash
6666
uv sync --dev
@@ -70,23 +70,23 @@ uv run act cast
7070
uv build
7171
```
7272

73-
- `uv sync --dev` installs runtime and test dependencies into a local virtualenv.
74-
- `uv run pytest` executes the suite against the managed environment.
75-
- `uv run act new ...` exercises the CLI exactly as users would experience it.
76-
- `uv build` produces the wheel and sdist artifacts.
73+
- `uv sync --dev`: 로컬 가상환경에 런타임/테스트 의존성 설치
74+
- `uv run pytest`: 관리되는 환경에서 테스트 스위트 실행
75+
- `uv run act new ...`: 실제 사용자 경험과 동일하게 CLI 동작 검증
76+
- `uv build`: wheel과 sdist 아티팩트 생성
7777

78-
## Testing
78+
## 테스트
7979

8080
```bash
8181
uv run pytest
8282
```
8383

84-
The suite ensures `act new` and `act cast` render the expected structure, validate directories, and surface clear error messages.
84+
테스트 스위트는 `act new``act cast`가 기대한 구조를 생성하는지, 디렉터리 검증이 정상 동작하는지, 오류 메시지가 명확한지를 보장합니다.
8585

86-
## Contributing
86+
## 기여하기
8787

88-
- Read the guides: [CONTRIBUTING.md](CONTRIBUTING.md) (KR), [CONTRIBUTING_EN.md](CONTRIBUTING_EN.md) (EN)
89-
- Issue templates:
90-
- Feature Request: [.github/ISSUE_TEMPLATE/backlog-kr.md](.github/ISSUE_TEMPLATE/backlog-kr.md), [.github/ISSUE_TEMPLATE/backlog-en.md](.github/ISSUE_TEMPLATE/backlog-en.md)
91-
- Bug Report: [.github/ISSUE_TEMPLATE/bug-report-kr.md](.github/ISSUE_TEMPLATE/bug-report-kr.md), [.github/ISSUE_TEMPLATE/bug-report-en.md](.github/ISSUE_TEMPLATE/bug-report-en.md)
92-
- PR template: [.github/PULL_REQUEST_TEMPLATE.md](.github/PULL_REQUEST_TEMPLATE.md)
88+
- 가이드 문서: [CONTRIBUTING.md](CONTRIBUTING.md) (KR), [CONTRIBUTING_EN.md](CONTRIBUTING_EN.md) (EN)
89+
- 이슈 템플릿:
90+
- 기능 제안: [.github/ISSUE_TEMPLATE/backlog-kr.md](.github/ISSUE_TEMPLATE/backlog-kr.md), [.github/ISSUE_TEMPLATE/backlog-en.md](.github/ISSUE_TEMPLATE/backlog-en.md)
91+
- 버그 제보: [.github/ISSUE_TEMPLATE/bug-report-kr.md](.github/ISSUE_TEMPLATE/bug-report-kr.md), [.github/ISSUE_TEMPLATE/bug-report-en.md](.github/ISSUE_TEMPLATE/bug-report-en.md)
92+
- PR 템플릿: [.github/PULL_REQUEST_TEMPLATE.md](.github/PULL_REQUEST_TEMPLATE.md)

README_EN.md

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# Act Operator
2+
3+
Act Operator is Proact0’s CLI for bootstrapping LangGraph-based “Act - AX Template” blueprints with `cookiecutter`. The tool exposes `act new` to build an Act project and `act cast` to scaffold additional casts inside an existing blueprint.
4+
5+
## Key Features
6+
7+
- Typer-powered CLI exposed as `act`
8+
- `cookiecutter` rendering with slug/snake/title variants for Act and Cast names
9+
- Safe directory checks to avoid overwriting non-empty folders
10+
- Built-in command to add extra casts to an existing Act project
11+
- Fully tested with `pytest`
12+
13+
## Installation
14+
15+
```bash
16+
uv add act-operator
17+
```
18+
19+
Act Operator requires Python 3.12 or newer. The project ships with `pyproject.toml` so `uv` manages dependencies reproducibly.
20+
21+
## Usage
22+
23+
### Create a new Act project
24+
25+
```bash
26+
uv run act new --path ./my-act --act-name "My Act" --cast-name "Main Cast"
27+
```
28+
29+
You can omit any option to trigger interactive prompts. When `--path` points to a custom directory, the Act name defaults to that directory name.
30+
31+
### Add an additional cast
32+
33+
```bash
34+
uv run act cast --path ./my-act --cast-name "Sub Cast"
35+
```
36+
37+
The command validates that `--path` is an Act project (presence of `pyproject.toml`, `langgraph.json`, `casts/base_node.py`, and `casts/base_graph.py`) before rendering the new cast.
38+
39+
### Resulting layout
40+
41+
```
42+
my-act/
43+
├── pyproject.toml
44+
├── README.md
45+
├── langgraph.json
46+
└── casts/
47+
├── __init__.py
48+
├── base_node.py
49+
├── base_graph.py
50+
└── main-cast/
51+
├── modules/
52+
│ ├── chains.py
53+
│ ├── conditions.py
54+
│ ├── models.py
55+
│ ├── nodes.py
56+
│ ├── prompts.py
57+
│ ├── tools.py
58+
│ └── utils.py
59+
├── state.py
60+
└── graph.py
61+
```
62+
63+
## Development with uv
64+
65+
```bash
66+
uv sync --dev
67+
uv run pytest
68+
uv run act new
69+
uv run act cast
70+
uv build
71+
```
72+
73+
- `uv sync --dev` installs runtime and test dependencies into a local virtualenv.
74+
- `uv run pytest` executes the suite against the managed environment.
75+
- `uv run act new ...` exercises the CLI exactly as users would experience it.
76+
- `uv build` produces the wheel and sdist artifacts.
77+
78+
## Testing
79+
80+
```bash
81+
uv run pytest
82+
```
83+
84+
The suite ensures `act new` and `act cast` render the expected structure, validate directories, and surface clear error messages.
85+
86+
## Contributing
87+
88+
- Read the guides: [CONTRIBUTING.md](CONTRIBUTING.md) (KR), [CONTRIBUTING_EN.md](CONTRIBUTING_EN.md) (EN)
89+
- Issue templates:
90+
- Feature Request: [.github/ISSUE_TEMPLATE/backlog-kr.md](.github/ISSUE_TEMPLATE/backlog-kr.md), [.github/ISSUE_TEMPLATE/backlog-en.md](.github/ISSUE_TEMPLATE/backlog-en.md)
91+
- Bug Report: [.github/ISSUE_TEMPLATE/bug-report-kr.md](.github/ISSUE_TEMPLATE/bug-report-kr.md), [.github/ISSUE_TEMPLATE/bug-report-en.md](.github/ISSUE_TEMPLATE/bug-report-en.md)
92+
- PR template: [.github/PULL_REQUEST_TEMPLATE.md](.github/PULL_REQUEST_TEMPLATE.md)

act_operator/act_operator/scaffold/{{ cookiecutter.project_dir }}/casts/base_graph.py

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
from abc import ABC, abstractmethod
2+
from typing import Any, Optional
23

4+
from langgraph.checkpoint.base import BaseCheckpointSaver
35
from langgraph.graph.state import CompiledStateGraph
46

57

@@ -15,18 +17,47 @@ def __init__(self) -> None:
1517
self.name = self.__class__.__name__
1618

1719
@abstractmethod
18-
def build(self) -> CompiledStateGraph:
19-
"""Constructs the graph graph.
20+
def build(
21+
self,
22+
checkpointer: Optional[BaseCheckpointSaver] = None,
23+
interrupt_before: Optional[list[str]] = None,
24+
interrupt_after: Optional[list[str]] = None,
25+
debug: bool = False,
26+
) -> CompiledStateGraph:
27+
"""Constructs and compiles the graph with optional runtime configuration.
28+
29+
Args:
30+
checkpointer: Optional checkpointer for persistence and state management.
31+
interrupt_before: List of node names to interrupt before execution.
32+
interrupt_after: List of node names to interrupt after execution.
33+
debug: Enable debug mode for detailed execution tracing.
2034
2135
Returns:
2236
CompiledStateGraph: Compiled state graph ready for execution.
2337
"""
2438
raise NotImplementedError
2539

26-
def __call__(self) -> CompiledStateGraph:
40+
def __call__(
41+
self,
42+
checkpointer: Optional[BaseCheckpointSaver] = None,
43+
interrupt_before: Optional[list[str]] = None,
44+
interrupt_after: Optional[list[str]] = None,
45+
debug: bool = False,
46+
) -> CompiledStateGraph:
2747
"""Compiles the graph when invoked like a function.
2848
49+
Args:
50+
checkpointer: Optional checkpointer for persistence and state management.
51+
interrupt_before: List of node names to interrupt before execution.
52+
interrupt_after: List of node names to interrupt after execution.
53+
debug: Enable debug mode for detailed execution tracing.
54+
2955
Returns:
3056
CompiledStateGraph: Result returned by :meth:`build`.
3157
"""
32-
return self.build()
58+
return self.build(
59+
checkpointer=checkpointer,
60+
interrupt_before=interrupt_before,
61+
interrupt_after=interrupt_after,
62+
debug=debug,
63+
)

0 commit comments

Comments
 (0)