When writing requirements in Confluence, we are referencing to them by requirement ID.
This is should consist of some short project ID and a number, e.g RPX-E-1, RPX-E-2 ...
What would be the best option to auto-generate this numbers, so that we don't end up having 2 same numbers?
You could use a combination of Confluence and JIRA. Then you could track your requirements directly in JIRA and get those requirement IDs for free :-)
I'm all ears...
Tell me more how would you do that?
Maybe creating a Jira project RPX, and having new issue type Requirement, can we define than that ID for that issue type be like RPX-E-1,..n, to differentiate from bugs and tasks?
Probably should be a better way?
You could set up Confluence and JIRA and link them together via Application Links. So you can display a list of issues from JIRA in Confluence.
Then you would create Issues for your requirements. An issue type requirement sounds like a great idea :-) You have to decide if you want to enable other issue types for the same project, too. I would suggest to do so. Then you would have all requirements, bugs and tasks within the same project where they belong to.
Unfortunately JIRA does not create different issue keys for different issue types. So RPX-1 could be a requirement and RPX-2 a bug. For me that never was a problem. When your requirements document is growing, you may delete old requirements or insert new ones, and the numbers are no more continuous. The main thing is that the keys are unique and stable (do not change over time).
The description of the requirements can be crafted into the JIRA issues or into Confluence pages. That depends on how you like to work (try out both and choose one). I would start trying with this setup:
Maybe this page is also useful for you: http://confluence.atlassian.com/display/DOC/Integrating+JIRA+and+Confluence
If you don't want to maintain knowledge in two locations, you can actually do all your requirement management work in JIRA!
Just set up a "requirement" issue type as suggested by others, and use the JIRA PDF View Plugin to transform those issues to Requirement Specification documents. As for numbering, you can develop a simple Groovy script for the PDF plugin to auto-generate the numbers for you, depending on issue links or issue labels.
Here is a sample Requirement Spec generated from JIRA issues.